Java “有问题吗?”;使用分隔符(“[,\n]”)&引用;。如何纠正呢?
在我将一些字符串值(如Rmonth、Ryear)转换为int类型并与输入值进行比较之后。 如果我的输入值不在我的文本文件中,它将给出真实的输出。但我的输入值在我的文本文件中,它给出了错误 错误: “ava.lang.NumberFormatException:用于输入字符串:”3 我的文本文件: 000001,2,7,92020,18000,1,0,0,0,0,0 000002,1,5,9,2020,2,12000,1,1,0,0,0,0Java “有问题吗?”;使用分隔符(“[,\n]”)&引用;。如何纠正呢?,java,Java,在我将一些字符串值(如Rmonth、Ryear)转换为int类型并与输入值进行比较之后。 如果我的输入值不在我的文本文件中,它将给出真实的输出。但我的输入值在我的文本文件中,它给出了错误 错误: “ava.lang.NumberFormatException:用于输入字符串:”3 我的文本文件: 000001,2,7,92020,18000,1,0,0,0,0,0 000002,1,5,9,2020,2,12000,1,1,0,0,0,0 000003,9,12,102020,526000,1,
000003,9,12,102020,526000,1,0,0,1,0,0您的字符串无法转换为数字。如果字符串为“3”,则它作为整数无效。问题: 在您的代码(如下所示)中,您对
x.hasNext()
的一次调用调用了next()
13次,因此只有对next()
的第一次调用,即PIN=x.next();
将有效,而其他调用可能无效,因为未检查x.hasNext()
public void getConformFileDate(int year,int month,int date,int numOfday,int sr,int dr,int tr,int fr,int kr,int qr){
String PIN = "" ; String check_in = ""; String NDates =""; String Rmonth = "" ; String Ryear = "" ;String people = "" ; String price = "" ;
String single = "" ; String doub = ""; String triple =""; String fam = "" ; String king = "" ;String queen = "" ;
try{
x = new Scanner(new File(conf));
x.useDelimiter("[,\n]");
while(x.hasNext()){
PIN = x.next();
check_in = x.next();
NDates = x.next();
Rmonth = x.next();
Ryear = x.next();
people = x.next();
price = x.next();
single = x.next();
doub = x.next();
triple = x.next();
fam = x.next();
king = x.next();
queen = x.next();
checkWithConformFile(Ryear,Rmonth,check_in,NDates,year,month,date,numOfday,single,doub,triple,fam,king,queen,sr,dr,tr,fr,kr,qr);
//sumcroom = sumcroom + croom;
}
x.close();
}
catch(Exception e){
System.out.println(e);
}
}
解决方案:
您需要在每次调用next()
之前调用x.hasNext()
,如下所示:
while(x.hasNext()) {
PIN = x.next();
check_in = x.next();
...
...
...
checkWithConformFile(Ryear,Rmonth,check_in,NDates,year,month,date,numOfday,single,doub,triple,fam,king,queen,sr,dr,tr,fr,kr,qr);
}
谢谢你,兄弟。@Arvind Kumar Avinash。谢谢你,兄弟。我会的。
while(x.hasNext()) {
PIN = x.next();
if(x.hasNext()){
check_in = x.next();
}
if(x.hasNext()){
NDates = x.next();
}
...
...
...
checkWithConformFile(Ryear,Rmonth,check_in,NDates,year,month,date,numOfday,single,doub,triple,fam,king,queen,sr,dr,tr,fr,kr,qr);
}