2017-01-29 3 views
0

"Nut"文字列が格納されている場所を特定する必要があります。私は私のコードはちょうどうまく動作すると思ったが、明らかにIDEは私にエラーを投げつけ続けている。私は推測していた場合にのみhidingSpots配列内の1つの文字列を初期化するため配列内のランダムなインデックスに割り当てられた文字列を取得します。

Random rd = new Random(); 
String[] hidingSpots = new String[100]; 
hidingSpots[rd.nextInt(hidingSpots.length)] = "Nut"; 
System.out.println("The nut has been hidden ..."); 
int nutLocation = 0; 
while (nutLocation < hidingSpots.length) { 
    if (hidingSpots[nutLocation].equals("Nut")) { 
     System.out.println("Found it! It's in spot# " + hidingSpots[nutLocation]); 
    } 
    nutLocation++; 
} 
+2

「IDEが私にエラーを投げつけ続ける」 - そのエラーが何であったのかを知ることは役に立ちます。 –

+0

意味的なエラーですので、本当に役立つ情報はありません。 org.codehaus.mojo:exec-maven-plugin:1.2.1:プロジェクトのexec(default-cli)HiddenNuts:コマンドの実行に失敗しました。エラーで終了したプロセス:1(終了値:1) - > [ヘルプ1] エラーの完全なスタックトレースを表示するには、Mavenを-eスイッチで再実行します。 完全なデバッグログを有効にするには、-Xスイッチを使用してMavenを再実行します。 エラーと考えられる解決方法の詳細については、次の記事を参照してください。 [ヘルプ1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException – FeCH

+0

そのエラーはあなたのコードと関係がありません。それはmavenエラーです。 –

答えて

2

、あなたはおそらくNullPointerExceptionを取得しています。最初にサイズ100の配列を作成したとき、文字列配列内のすべての要素は、何かで初期化するまでnullです。 hidingSpotsの要素99は、現在nullであり、あなたがnullに文字列を比較することはできませんので、したがって、このライン

if(hidingSpots[nutLocation].equals("Nut")) 

は今、エラーの原因となっています。

文字列はオブジェクトなので、他のオブジェクトと同様に配列のデフォルト値はnullになります。これは配列のプリミティブ型のデフォルト値とは異なります。たとえば、サイズが100のintの配列には、デフォルトで100個のゼロが含まれます。

+0

ありがとう、thats問題!ナットではないかどうかをチェックするのではなく、チェックするのではなく、 – FeCH

関連する問題