Java 带ParseInt的NumberFormatException
下面的代码构建一个StringBuilder,将其长度设置为11,并遍历字符串的每个字符以将其替换为“5”。它给出了NumberFormatException,尽管长度合适,内容也合适Java 带ParseInt的NumberFormatException,java,Java,下面的代码构建一个StringBuilder,将其长度设置为11,并遍历字符串的每个字符以将其替换为“5”。它给出了NumberFormatException,尽管长度合适,内容也合适 StringBuilder str = new StringBuilder(); str.setLength(11); for(int i = 0; i < 11; i++){ System.out.println(str.toString()); str.replace(i, j, "5"
StringBuilder str = new StringBuilder();
str.setLength(11);
for(int i = 0; i < 11; i++){
System.out.println(str.toString());
str.replace(i, j, "5");
System.out.println(i + " " + j);
}
System.out.println(Integer.parseInt(str.toString()));
StringBuilder str=new StringBuilder();
str.setLength(11);
对于(int i=0;i<11;i++){
System.out.println(str.toString());
str.replace(i,j,“5”);
系统输出打印项次(i+“”+j);
}
System.out.println(Integer.parseInt(str.toString());
可能是因为带数字的字符串大于整数值的最大长度。尝试解析为Long。您知道整数的最大值为2147483647吗?所以555不起作用。
使用长的或少于10位的数字。根据Java语言规范: int的宽度为32位,因此int变量的范围为-2147483648到+2147483647。long为64位,范围为-9223372036854775808到+9223372036854775807 更改为代码中的下一行:
System.out.println(Long.parseLong(stringBuilder.toString()));
你的字符串看起来是空的,你没有在里面放任何东西。注意:你为什么不使用
i+1
而不是使用和递增j
,如果代码变得更复杂,这可能会导致错误?乍一看,代码有点迂回,违反直觉,但是很好的挑逗。因为后悔比感激更强烈呵呵