Java在读取文本文件时不返回值
Java在读取文本文件时返回字符串值,但它只返回“0”表示整型值,返回“0.0”表示双精度值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
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)?