当我尝试将 3 个字符的字符串转换为整数时出现 NumberFormatException

“线程“main”java.lang.NumberFormatException中出现异常:对于输入字符串:“l20””


这是我在尝试将 3 位数字字符串类型转换为 int 时收到的错误消息。


如果我理解正确的话,java中int的最大值是2147483647?


这是导致语法的方法


private int getRed(String key) {

    return Integer.parseInt(key.substring(3,6));

}

编辑:为了澄清,密钥是由以下代码随机生成的 12 位字符串


for(int i=0;i<12;i++) {

      Random random = new Random();

      key=key+Integer.toString(random.nextInt(10));

}

编辑2:下面是一个最小的可重现示例,它会产生此错误消息“线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“l35”at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在 java.lang.Integer.parseInt(Integer.java:580) 在 java.lang.Integer.parseInt(Integer.java:615) 在 Test.getRed(Test.java:57) 在 Test.getKey(Test.java: 44) 在 Test.encode(Test.java:36) 在 Test.main(Test.java:70)"


慕斯709654
浏览 66回答 3
3回答

萧十郎

也许将你的代码与我的代码进行比较。我几乎按照你说的方式做了,只有细微的差别。$ javac Num.java && java NumFull key: 255142125179Parsing: 142Parsed: 142$ cat Num.javaimport java.util.Random;public class Num {&nbsp; &nbsp; public static int getRed(String key) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("Parsing: %s\n", key.substring(3, 6));&nbsp; &nbsp; &nbsp; &nbsp; return Integer.parseInt(key.substring(3,6));&nbsp; &nbsp; }&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; String key = new String("");&nbsp; &nbsp; &nbsp; &nbsp; Random random = new Random();&nbsp; &nbsp; &nbsp; &nbsp; for (int index = 0; index < 12; ++index) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key = key + Integer.toString(random.nextInt(10));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("Full key: %s\n", key);&nbsp; &nbsp; &nbsp; &nbsp; int value = getRed(key);&nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("Parsed: %d\n", value);&nbsp; &nbsp; }}我不认为有什么问题。它似乎工作正常,因此您没有包含重要的内容。

智慧大石

正如我所见,您尝试通过 Integer.parseInt(key.substring(3,6));从“&nbsp;l 20”获取整数&nbsp;据我所知 parseInt() 解析整数(数字)。“l”是什么数字?)我不知道,整数也不知道,这就是它抛出此异常的原因)

慕姐4208626

我刚刚发现出了什么问题,我没有将 String 键初始化为“”,因此它默认为 null,并且它尝试转换的子字符串 3-6 以 L 开头一旦我修复它,错误就消失了感谢所有帮助过的人
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java