Integer.parseInt("-1000");
返回 -1000 作为输出。
Integer.parseInt("+500");
抛出异常。
我如何能够识别前面带有“+”符号的正数而无需修剪符号?
Integer.parseInt("-1000");
返回 -1000 作为输出。
Integer.parseInt("+500");
抛出异常。
我如何能够识别前面带有“+”符号的正数而无需修剪符号?
尝试DecimalFormat
喜欢与模式"+#;-#"
。它将处理显式签名解析。模式分解:
;
)是正面模式,它必须以+
char开头-
字符开头例子:
DecimalFormat df = new DecimalFormat("+#;-#");
System.out.println(df.parse("+500"));
System.out.println(df.parse("-500"));
输出:
500
-500
该方法的行为如文档中所述:
字符串中的字符必须都是十进制数字,除了第一个字符可以是 ASCII 减号“-”(“\u002D”)表示负值。
如果要+
正确进行解析,则需要跳过第一个字符:
if (s.charAt(0) == '+') s = s.substring(1);
int val= Integer.parseInt(s);
我正在使用 Java 7,并且Integer.parseInt("+500");
没有抛出任何异常。
字符串中的字符必须都是十进制数字,除了第一个字符可以是 ASCII 减号
'-'
('\u002D'
) 表示负值或 ASCII 加号'+'
('\u002B'
) 表示正值。
公共静态 int parseInt(String s) 抛出 NumberFormatException
将字符串参数解析为有符号十进制整数。字符串中的字符必须都是十进制数字,除了第一个字符可以是 ASCII 减号“-”(“\u002D”)表示负值。返回结果整数值,就像参数和基数 10 作为参数提供给 parseInt(java.lang.String, int) 方法一样。
实现从 java 6 到 7