gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:05:33 25 4
gpt4 key购买 nike

Java 在读取文本文件时返回字符串值,但它只会为我的整数值返回“0”,为我的 double 值返回“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]);
}

例子:Java返回什么--->1: 名称:欧宝 型号:Astra 年份:0 Disp:0.0

文本文件中的内容:Opel Astra 1997 2.8

这是我的构造函数:

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

这是我的 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;
}

您在构造函数中声明一个新变量 yeardisp 而不是在您的类中设置该字段。因此,这些值永远不会设置,因此它们分别使用默认值 00.0

将其更改为

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

应该可以。

关于读取文本文件时Java不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com