将整数转换为类类型java的数组

时间:2016-12-10 09:35:22

标签: java arrays upcasting

我收到一个有姓名(表格)和座位数的文件:

table1 6

table2 2

table3 4

我有一个班级预订数组,它将包含姓名和座位。我无法将座位数转换为阵列。我该怎么做呢?

public class Reservable {

first=name&second[]=a&second[]=b&third[x]=1&third[y]=2&third[z]=3

这是我的预订课程:

protected String id;
private Reservation[] arrayRes = new Reservation[10];



public Reservable (Scanner fileIn) {
    while(fileIn.hasNext()) {
        id = fileIn.next();
        for(int i = 0; i < arrayRes.length; i++) {
            int seat = fileIn.nextInt();
            arrayRes[i] = seat;

        }
    }


}

2 个答案:

答案 0 :(得分:1)

您可以逐行阅读,因为您的文件已按行预订。 我建议你有一个带有两个参数的预留构造函数(name和nbSeat) 注意:您的预订数组具有固定大小:10。如果您的文件超过10个元素,则ArrayIndexOutOfBoundsException将会上升。
如果预订数量可能高于10或可变,则应使用List而不是数组。

protected String id;
private Reservation[] arrayRes = new Reservation[10];


public Reservable (Scanner fileIn) {
    int i=0;
    while(fileIn.hasNextLine()) {
        String line = fileIn.nextLine();
        String[] token = line.split("\\s");
        String name = token[0];
        int nbSeat= Integer.valueOf(token[1)];
         // add in your array
         Reservation reservation = new Reservation(name,nbSeat);
        arrayRes[i] = reservation ;

    }
      i++;
}

预订:

public class Reservation{

  public Reservation(String name, int nbSeat){
    this.name=name;
    this.nbSeat=nbSeat;
  }
 }

答案 1 :(得分:0)

您需要向我们展示您的预订类的外观,但如果它使用传统的getter和setter,这是正确的方法:

public Reservable (Scanner fileIn) {
    while(fileIn.hasNext()) {

        for(int i = 0; i < arrayRes.length; i++) {
            int seat = fileIn.nextInt();
            arrayRes[i].setSeat(seat);
            id = fileIn.next();
            arrayRes[i].setId(id);

            }
        }
}