Java “有问题吗?”;使用分隔符(“[,\n]”)&引用;。如何纠正呢?

Java “有问题吗?”;使用分隔符(“[,\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,

在我将一些字符串值(如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,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);
}