Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带ParseInt的NumberFormatException_Java - Fatal编程技术网

Java 带ParseInt的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,将其长度设置为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");
    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
,如果代码变得更复杂,这可能会导致错误?乍一看,代码有点迂回,违反直觉,但是很好的挑逗。因为后悔比感激更强烈呵呵