2017-11-27 24 views
0

私はJavaにとって非常に新しくてナイーブです。どのようにプレイヤーの名前を印刷しますか? 「最後のプレイヤーはペギー・ルーです」と印刷したいとしましょう。配列の文字列インデックスを出力する方法は?

void createPlayers() { 
     System.out.print("What is your name? "); 
     String humansName = scanner.next(); 
     players[0] = new Human(humansName); 
     players[1] = new Player("Bill"); 
     players[2] = new Player("Hank"); 
     players[3] = new Player("Peggy Lou"); 

    } 
+1

System.out.print(+プレーヤー "最後のプレーヤーは" [3])。 –

+3

'Player'にオーバーライドされた' toString'メソッドがありますか? 'Player'の名前に'ゲッター 'を持ってきましたか? –

+1

@BenoArakelyanよろしくお願いします。Beno ...オブジェクトPlayerは、名前を文字列として返すメソッドが必要です。 System.out.print( "最後のプレイヤーは" + players [3] .Name; –

答えて

3

あなたはプレイヤーの位置を知っている場合は、このような何か行うことができます:それ以外の場合は

System.out.print(players[3]) // Peggy Lou

を、あなたは配列を検索する必要があります、このような:

String name = "Peggy Lou"; // player you are looking for 
for (int i = 0; i < players.length; i++) { 
    if (players[i].name.equals(name) { 
     System.out.println("Player: " + players[i]) 
    } 
} 

リスト内の最後の人を特定したい場合は、

System.out.println(players[players.length - 1])

+0

players [i] 'String 'ではなく、' players [i] .equals(name) 'と呼ぶべきではありません。 –

+0

@BenoArakelyanあなたは正しいですが、クラス構造がどのように見えるかはわかりませんが、プレーヤークラスのゲッターメソッドがある場合、nameが 'public'または' private'の場合、この時点で推測しているだけですが、回答は更新されますが、質問自体に基づいて、特定の構造体です。名前がプライベートで、getメソッドでアクセスするのは正しいですが、それがOPのクラスを設定する方法を知っている人は – 23k

+0

です。質問の下で私のコメントを見ることができます。 。 –

-2

あなたがアクセスしようとしている配列のインデックスをプリントアウトすることができます。

System.out.print(players[3]); 
+1

T人々はすでにこれを言及している、第三を追加する必要はありません。 – 23k

+1

2つの答えがあります。あなたは私の回答を書いている間に投稿しました。 –

+0

多くのプレイヤーがリストに追加されると、これは破損します。 – NickJ

-1
createPlayers(); 
System.out.println(players["Player in last index:"+players[players.length-1]); 
+0

私はこれを追加の 'players ['のためにコンパイルしません。 –

+0

int lastPlayer = players.length-1、またはint lastPlayer1 = Arrays.asList(players).indexOf( "Peggy Lou")以上の種類; System.out.println(players [lastPlayer1]); –

+0

いいえ、どちらもコンパイルされません – NickJ

関連する問題