[英]How to parse more than one string into an int in java
好的,所以我在编程任务上遇到很多麻烦。 我们将从文本文件中读取信息,并使用我们创建的某些方法对其进行格式化。 我能够从文本文件的第一行中读取信息很好,但是后记却出错。 我的代码如下:
String name1 = scan.nextLine();
String name2 = scan.nextLine();
scan.close();
int length = name1.length();
int count = 0;
int a = 0;
int b = 1;
while(end != true)
{
String check = name1.substring(a,b);
a++;
b++;
count++;
char z = check.charAt(0);
if(z == '0' || z == '1' || z == '2' || z == '3' || z == '4' || z == '5' || z == '6' || z == '7' || z == '8' || z == '9')
{
end = true;
}
if(count == length)
{
end = true;
}
}
String number1 = name1.substring(count,length);
int number01 = Integer.parseInt(number1);
name1=name1.substring(0, count-1);
int d = name1.indexOf(" ");
int length1 = name1.length();
String name1first = name1.substring(0,d);
name1first = name1first.trim();
String name1last = name1.substring(d,length1);
name1last = name1last.trim();
System.out.println(name1first);
System.out.println(name1last);
System.out.println(number01);
length = name2.length();
int countt = 0;
int aa = 0;
int bb = 1;
while(end != true)
{
String check = name2.substring(aa,bb);
aa++;
bb++;
countt++;
char z = check.charAt(0);
if(z == '0' || z == '1' || z == '2' || z == '3' || z == '4' || z == '5' || z == '6' || z == '7' || z == '8' || z == '9')
{
end = true;
}
if(countt == length)
{
end = true;
}
}
String number2 = name2.substring(countt,length);
int number02 = Integer.parseInt(number2);
name2=name2.substring(0, countt-1);
d = name2.indexOf(" ");
int length2 = name2.length();
String name2first = name2.substring(0,d);
name2first = name2first.trim();
String name2last = name2.substring(d,length2);
name2last = name2last.trim();
System.out.println(name2first);
System.out.println(name2last);
System.out.println(number02);
我得到这个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Jennifer Sutter 52114"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Salary.main(Salary.java:101)
那是显而易见的原因:
您正在尝试将“ Jennifer Sutter 52114”转换为整数。
解决方案是在尝试调用Integer.parseInt()
首先使用try{}catch()
块。
我认为您正在尝试获取字符串的最后一部分并将其转换为整数:并且由于您正在使用Scanner
,因此可以像下面这样对nextInt()
进行操作:
new Scanner(theStringWhichMightHaveANumber).nextInt();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.