2017-11-29 16 views
2

それは「カントの検索記号」.LENGTH

は私がやろうとしていますすべてがある

「シンボル長を見つけることができません」というエラーが表示されますで、私はこのコードを入力すると文字列の長さを見つけ、その長さを変数に格納します。

誰でも問題を見つけるのを助けることができますか?

String[] words = { 
    "hello", "java", "yamaha", "dell", "hydro" 
}; 

a = (int) (Math.random() * 6); 
b = (words[a]).length; 
+0

あなたは、時にはは 'も –

+0

このコード1としてOOB例外を取得するように見える(INT X = 0; X <100であり; x ++){ \t \tのSystem.out.println(X) \t \t int a =(int)(Math.random()* 6); \t \t int b =(words [a])。length(); \t \t} ' –

答えて

4

Stringクラスはlength性質を持っていない、あなたはlength()メソッドを呼び出す必要があり

b = (words[a]).length(); 
     /\ 
     || 
     || 
     || 
    Since you are accessing the a'th index of array, which returns String hence you have to call length() method instead of length which is the field in array instead 

Scarywombatが指摘したように、あなたを変更する必要があるので、あなたは、同様に境界例外から抜け出す可能性があります条件

a = (int) (Math.random() * 5); // 5 instead of 6 
0

文字列は長さをサポートしていません可変長の変数が他の配列に使用されます。代わりにl ength()メソッド。

String[] words = 
{ 
    "hello", "java", "yamaha", "dell", "hydro" 
}; 



a = (int) (Math.random() * 6); 
b = (words[a]).length(); 
+0

' a =(int)(Math.random()* 6);正しいですか? –

+0

はい..私はintにキャストする必要はないと思う@Scary Wombet –

+1

@PrakashSharma彼はキャスティングについて話していない、あなたは間違いなくキャストしなければならない。問題は、このステートメントは、範囲外の例外を引き起こすインデックス5を与えることができるということです。配列の長さは5 –

-1

文字列にはlengthというプロパティがありませんが、配列にはそれがあります。 配列の場合、およびの文字列にはlength()を使用する必要があります。

関連する問題