3 回答
TA贡献1815条经验 获得超13个赞
也许将你的代码与我的代码进行比较。我几乎按照你说的方式做了,只有细微的差别。
$ javac Num.java && java Num
Full key: 255142125179
Parsing: 142
Parsed: 142
$ cat Num.java
import java.util.Random;
public class Num {
public static int getRed(String key) {
System.out.printf("Parsing: %s\n", key.substring(3, 6));
return Integer.parseInt(key.substring(3,6));
}
public static void main(String[] args) {
String key = new String("");
Random random = new Random();
for (int index = 0; index < 12; ++index) {
key = key + Integer.toString(random.nextInt(10));
}
System.out.printf("Full key: %s\n", key);
int value = getRed(key);
System.out.printf("Parsed: %d\n", value);
}
}
我不认为有什么问题。它似乎工作正常,因此您没有包含重要的内容。
TA贡献1946条经验 获得超3个赞
正如我所见,您尝试通过 Integer.parseInt(key.substring(3,6));从“ l 20”获取整数 据我所知 parseInt() 解析整数(数字)。“l”是什么数字?)我不知道,整数也不知道,这就是它抛出此异常的原因)
TA贡献1852条经验 获得超7个赞
我刚刚发现出了什么问题,我没有将 String 键初始化为“”,因此它默认为 null,并且它尝试转换的子字符串 3-6 以 L 开头
一旦我修复它,错误就消失了
感谢所有帮助过的人
添加回答
举报