1次元配列にテキストファイルを読みます

kkkkkk:

私は現在、(配列です)待合室で待っている乗客を表し乗客名と乗客のリストを与えられています。

現在、私は次のように擬似コードは、ステップ1の一部に苦しんでいます:

  1. waitingRoom配列にpassengers.datファイルに読み込みます。

ここに私のコードは次のとおりです。

    public class TrainStation {
    int WAITING_ROOM_CAPACITY = 30;

       static Passenger[] waitingRoom = new Passenger[WAITING_ROOM_CAPACITY]; 

       static PassengerQueue queue = new PassengerQueue();

       public static void main(String[] args) throws IOException {
       //1. 
            try {
            File pointFile = new File ("passenger.dat");
            Scanner pointReader = new Scanner (pointFile);
            String firstName, surname;
            int i = 0;
            while (pointReader.hasNext()) {
                firstName = pointReader.next();
                surname = pointReader.next();
                Passenger Object = new Passenger(firstName, surname);
                waitingRoom[i] = Object;
                i++;
            }   
                for (int fori=0; fori<WAITING_ROOM_CAPACITY; fori++){
                System.out.println(waitingRoom[fori]); }
            pointReader.close();

          } catch (IOException e) {
            System.out.println("Sorry, file not found");  
          }

わずか30人の乗客を保持することができます私のWAITING_ROOM_CAPACITYは、私は2つの配列を作成しました。一つのアレイはwaitingRoomとtrainQueueのためのもう一つのためです。私はスキャナを使用してオブジェクトに旅客クラスを変換することにより、擬似コードを以下のファイルを読み込もうとしましたが、しかし、私は「example.Passenger@6bc7c054」を取得するのではなく、ファイルからの乗客の実際の名前を読み続けます。

ここでは、画像の説明を入力します。

これに加えて、私は2つのクラスがあります。

package trainstation;


public class Passenger {
    private String firstName; 
    private String surname;
    private int secondsInQueue;

    Passenger(String firstName, String surname) {
        this.firstName = firstName;
        this.surname = surname; 
        secondsInQueue = 0;
    }

これは私が自分の名前と姓で乗客を追加するために、私のaddメソッド内許すクラス、私の旅客です。

私は本当に苦労していて誰かが助けを喜ばでした。

1月Uhlig:

まず第一に、あなたのコードスニペットなどのエラー、ログと何でもあなたのコンソール出力だけでなく、テキストを追加することができます。

エラー状態、情報、警告、エラーまたは例外はっきりしない場合、それはどちらもそれらのではありません。

私はあなたの写真で見ることはあなたの配列であなたの旅客エントリの単なる文字列表現です。

私は明らかにしてみてください。

旅客が対象です。することでSystem.out.println(passenger);、あなただけのあなたがその乗客を印刷したいというあなたのコンパイラに伝えるが、あなたのコンパイラは、あなたが正確に印刷したいものを言うカントので、それはそれが何であるかがわかります。A Passengerにより作成されたexample識別用hexnumber有します。それはあなたもそのオブジェクトのそのpropably 99%の場合には、そのオブジェクトの一部のみである文字列を印刷したい知りません。

[OK]を、今それを修正する方法を、非常に簡単に、あなたの旅客クラスにだけ追加します。

public String toString() { 
   return this.firstName + "," + this.surname;
}  

System.out.println()は、単に使用することにあるためtoString()印刷する方法を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=370940&siteId=1