2016-12-10 3 views
0

я беру в файл, который имеет имя (таблица) и количество мест:преобразовать целое число в массив типа класса Java

table1 6

table2 2

Table3 4

У меня есть класс класса Бронирование, которое займет имя и место. У меня возникают проблемы с преобразованием количества мест в массив. Как мне это сделать?

общественного класса Reservable {

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; 

     } 
    } 


} 

вот мой класс Бронирование:

public class Reservation { 
    private String name; 
    private int timeSlot; 
    private Reservable myReservable; 

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

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getTimeSlot() { 
     return timeSlot; 
    } 

    public void setTimeSlot(int timeSlot) { 
     this.timeSlot = timeSlot; 
    } 

    public Reservable getMyReservable() { 
     return myReservable; 
    } 

    public void setMyReservable(Reservable myReservable) { 
     this.myReservable = myReservable; 
    } 

    public boolean isActive() { 
     return false; 
    } 

ответ

0

Вы должны показать нам, что ваш класс Бронирование выглядит, но если он использует обычные методы получения и установки этой является правильным:

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); 

      } 
     } 
} 
+0

возгласы мои извинения, я просто обновил с кодом, но да его просто типичные методы получения и установки – bpham93

+0

спасибо! очень признателен! – bpham93

1

Вы можете читать строки за строкой, так как в вашем файле есть re обслуживание по линии. Я предлагаю вам иметь конструктор резервирования с двумя параметрами (имя и nbSeat).
Замечание: у вас массив резервирования имеет фиксированный размер: 10. Если файл имеет более 10 элементов, то будет поднят ArrayIndexOutOfBoundsException.
Если номер резервирования может быть выше 10 или является переменной, вы должны использовать список, а не массив.

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; 
    } 
} 
+0

ах, ладно, это имеет смысл. спасибо вам большое – bpham93

+0

приветствуется :) Я предложил вам конструктор, поскольку он не был первоначально представлен в вашем вопросе. – davidxxx

Смежные вопросы