为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯709654 2023-11-01 22:05:16
“线程“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)"
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

也许将你的代码与我的代码进行比较。我几乎按照你说的方式做了,只有细微的差别。


$ 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);

    }


}

我不认为有什么问题。它似乎工作正常,因此您没有包含重要的内容。


查看完整回答
反对 回复 2023-11-01
?
智慧大石

TA贡献1946条经验 获得超3个赞

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



查看完整回答
反对 回复 2023-11-01
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我刚刚发现出了什么问题,我没有将 String 键初始化为“”,因此它默认为 null,并且它尝试转换的子字符串 3-6 以 L 开头

一旦我修复它,错误就消失了

感谢所有帮助过的人


查看完整回答
反对 回复 2023-11-01
  • 3 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信