parseInt
方法是 Java 中用于将字符串解析为整数的静态方法。它位于 Integer
类中。在处理字符串解析边界情况时,parseInt
方法会遵循以下规则:
- 空字符串:如果传入的字符串为空,
parseInt
会返回 0。
Integer.parseInt(""); // 结果为 0
- 只有空白字符:如果传入的字符串只包含空白字符(如空格、制表符、换行符等),
parseInt
会返回 0。
Integer.parseInt(" "); // 结果为 0
- 包含非数字字符:如果传入的字符串包含除数字、符号(可选)和正负号(可选)之外的任何字符,
parseInt
会抛出NumberFormatException
。
Integer.parseInt("12a3"); // 抛出 NumberFormatException
- 正负号:
parseInt
可以识别字符串中的正负号。如果字符串以正负号开头,parseInt
会将其解析为相应的整数。
Integer.parseInt("+123"); // 结果为 123 Integer.parseInt("-123"); // 结果为 -123
- 符号与数字之间不能有空格:如果字符串中的正负号与数字之间有空格,
parseInt
会抛出NumberFormatException
。
Integer.parseInt("+ 123"); // 抛出 NumberFormatException Integer.parseInt("- 123"); // 抛出 NumberFormatException
- 整数溢出:
parseInt
方法可以解析的整数范围是 -2^31 到 2^31-1(即 -2147483648 到 2147483647)。如果传入的字符串表示的整数超出这个范围,parseInt
会抛出NumberFormatException
。
Integer.parseInt("2147483648"); // 抛出 NumberFormatException Integer.parseInt("-2147483649"); // 抛出 NumberFormatException
为了避免边界情况导致的异常,可以使用 try-catch
语句捕获 NumberFormatException
,或者在调用 parseInt
之前对字符串进行预处理,例如去除空白字符、检查正负号等。