gpt4 book ai didi

尝试运行程序时显示 java.lang.NumberFormatException 错误

转载 作者:行者123 更新时间:2023-12-01 18:22:26 24 4
gpt4 key购买 nike

这个程序应该将社会安全号码分割并加在一起。我以为我正确地编写了所有代码,但是当我运行代码时,它输出了 java.lang.NumberFormatException 错误。我正在使用 Eclipse,它没有显示哪一行代码有错误,所以我不知道要修复什么。 这是我正在使用的两类代码:

主要类(class):

import static java.lang.System.*;

public class social
{
private String socialNum;
private int sum;

public social()
{
setWord("");
}

public social(String soc)
{
setWord(soc);
}


public void setWord(String w)
{
socialNum = w;
}

public void chopAndAdd()
{
String sub1 = socialNum.substring(0, socialNum.indexOf("-"));
String sub2 = socialNum.substring(socialNum.indexOf("-") + 1, socialNum.lastIndexOf("-"));
String sub3 = socialNum.substring(socialNum.indexOf("-") + 1);

int int1 = Integer.parseInt(sub1);
int int2 = Integer.parseInt(sub2);
int int3 = Integer.parseInt(sub3);

sum = int1 + int2 + int3;
}

public String toString()
{
return "SS# " + socialNum + " has a total of " + sum + "\n";
}
}

运行者类别:

import static java.lang.System.*;

public class socialrunner
{
public static void main( String args[] )
{
//add test cases
social test = new social("456-56-234");
test.chopAndAdd();
System.out.println(test);

test.setWord("1-1-1");
test.chopAndAdd();
System.out.println(test);

test.setWord("182-2-12");
test.chopAndAdd();
System.out.println(test);

test.setWord("0-0-0");
test.chopAndAdd();
System.out.println(test);

}
}

感谢您的帮助~!

最佳答案

错误是由于线路造成的

String sub3 = socialNum.substring(socialNum.indexOf("-") + 1);

代码

socialNum.substring(socialNum.indexOf("-") + 1)

返回 56-234,它不是整数。当它尝试将其解析为 Int 时,这会导致 NumberFormatException。将该行更改为,

String sub3 = socialNum.substring(socialNum.lastIndexOf("-") + 1);

它将消除错误。

关于尝试运行程序时显示 java.lang.NumberFormatException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com