【发布时间】:2022-01-15 10:10:35
【问题描述】:
我正在尝试使用简单的数组和构造函数进行探索。我的目标是读取包含 7 组数据的文本文件。 (从下面的代码中可以看出,字符串、字符串、布尔等)但我遇到了问题。
我的预期结果是... 从文本文件中读取文件,并将该数据存储在一个 Array 中(不需要 ArrayList,因为我们知道它包含多少数据,每行 7 组数据,17 行数据),然后打印信息。我已经尝试使用方法和构造函数创建数组,以及读取文件并将正确的数据类型分配给数组字段,但我得到了错误。
“未解决的编译问题:类型不匹配:无法从 Seat 转换为 String。”
当我在下面得到构造函数的第二部分时,它应该与顶部的构造函数方法相关联,同时查看 Array 以便它知道在哪里存储数据,对吧?但我不确定为什么,除非我犯了错误。之前我已经成功构建了一个ArrayList,但是我发现读取数据很困难,并且如上所述,我不需要弹性Array,因为我知道数据量。
我还尝试更改初始构造方法的返回类型(在顶部)以及更改方法的名称以查看它是否正在查看正确的内容。数组真的很酷而且很有用,所以我很想知道我哪里出错了。我的代码如下。
import java.io.FileReader;
import java.util.Scanner;
public class seatReserveSystem2 {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
class Seat {
String seatNum;
String seatClass;
boolean isWindow;
boolean isAisle;
boolean isTable;
double seatPrice;
String eMail;
// Constructor
Seat(String seatNum, String seatClass, boolean isWindow, boolean isAisle, boolean isTable, double seatPrice, String eMail) {
this.seatNum = seatNum;
this.seatClass = seatClass;
this.isWindow = isWindow;
this.isAisle = isAisle;
this.isTable = isTable;
this.seatPrice = seatPrice;
this.eMail = eMail;
}
}
String[] reserveSeats = new String[7];
Scanner reader = new Scanner(new FileReader("seats.txt"));
Scanner scan = new Scanner (System.in);
int index = 0;
while(reader.hasNext()) {
String dataSeats = reader.nextLine();
String[] dataSplit = dataSeats.split(" ");
String seatNum = dataSplit[0];
String seatClass = dataSplit[1];
boolean isWindow = Boolean.parseBoolean(dataSplit[2]);
boolean isAisle = Boolean.parseBoolean(dataSplit[3]);
boolean isTable = Boolean.parseBoolean(dataSplit[4]);
double seatPrice = Double.parseDouble(dataSplit[5]);
String eMail = dataSplit[6];
reserveSeats[index] = new Seat(seatNum, seatClass, isWindow, isAisle, isTable, seatPrice, eMail);
index++;
}
}
}```
【问题讨论】:
标签: java arrays string types mismatch