Java在读取文本文件时不返回值

Java在读取文本文件时不返回值,java,arrays,object,text-files,readline,Java,Arrays,Object,Text Files,Readline,Java在读取文本文件时返回字符串值,但它只返回“0”表示整型值,返回“0.0”表示双精度值 Cars car[] = new Cars[5]; int cnt = 0; String line = inF.readLine(); while(line != null){ String[] field = line.split("\\s+"); int yrData = Integer.parseInt(field[2]); double dis

Java在读取文本文件时返回字符串值,但它只返回“0”表示整型值,返回“0.0”表示双精度值

  Cars car[] = new Cars[5];
  int cnt = 0;
  String line = inF.readLine();

  while(line != null){
     String[] field = line.split("\\s+");

     int yrData = Integer.parseInt(field[2]);
     double disData = Double.parseDouble(field[3]);

     car[cnt] = new Cars(field[0], field[1], yrData, disData);
     cnt++; 
     line = inF.readLine();
  }

  for(int i=0; i<cnt;  i++){
     System.out.println(i+1 +": "+ car[i]);
  }
这是我的toString方法:

public String toString(){String s = "Name: "+name+" Model: "+model+" Year: "+year+" Disp: "+disp; return s;}

文本的分隔符是空格。

问题出在构造函数中:

Cars(String dataForName, String dataForModel, int dataForYear, double dataForDisp){name = dataForName; model = dataForModel; int year = dataForYear; double disp = dataForDisp;}
Cars(String dataForName, String dataForModel, int dataForYear, double dataForDisp){
    name = dataForName; 
    model = dataForModel; 
    int year = dataForYear; 
    double disp = dataForDisp;
}
在构造函数中声明一个新变量
year
disp
,而不是在类中设置字段。因此,这些值从未设置,因此它们分别使用默认值
0
0.0

改成

 Cars(String dataForName, String dataForModel, int dataForYear, double dataForDisp){
    name = dataForName; 
    model = dataForModel; 
    year = dataForYear; 
    disp = dataForDisp;
 }

应该有效。

您能为您的构造函数提供代码吗?这应该是可行的。对于
toString
方法也是如此。文本的分隔符是什么?是空格(或)选项卡(\t)?