-4

文字列内のすべての文字を反復処理するfor-eachループをJavaで作成しようとしています。これを実行しようとすると、NetBeansでエラーが発生します。

for-each not applicable to expression type
required:array or java.lang.Iterable, found java.lang.String

これは私がエラーを受け取るJavaコードです:

for(char c : fen){
}

fen文字列です

私はC#で書かれたゲームのソースコードを理解しようとしていますが、そこでforeachループが機能しました:

foreach(char in fen){}
4

4 に答える 4

18

表示されるコンパイルエラーメッセージは非常に明確です。

For-eachループは、配列とに適用できますIterableString配列ではありません。文字の配列を保持しますが、それ自体は配列ではありません。 Stringインターフェイスも実装していませんIterable

for-eachループを使用して、文字を文字列に反復処理する場合は、次のように言う必要があります。

for(char c : str.toCharArray()) {}

于 2012-05-20T12:18:15.740 に答える
2

文字列は反復可能ではありません。試してくださいString#GetBytes()

for (byte b : str.getBytes(yourCharSet)) {

}
于 2012-05-20T12:16:36.113 に答える
2

String反復可能ではありません。Stringただし、char配列に変換して、次のように繰り返すことができます。

char[] fen = string.toCharArray();
for(char c : fen){
   //do your work
}
于 2012-05-20T12:19:16.933 に答える
1

for-各ループは期待どおりに機能しません。参考までにhttp://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

char[] fen = //define array here
for(char c : fen){
}
于 2012-05-20T12:16:13.850 に答える