Java中的Foreach循环不起作用

时间:2012-05-20 12:13:54

标签: java

我正在尝试在Java中创建for-each循环,迭代字符串中的每个字符。当我尝试这样做时,我在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 个答案:

答案 0 :(得分:18)

您收到的编译错误消息非常清楚。

For-each循环适用于数组和IterableString不是数组。它包含字符数组,但它本身不是数组。 String也没有实现接口Iterable

如果你想使用for-each循环来迭代字符到字符串中你必须说:

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

答案 1 :(得分:2)

字符串不可迭代,请尝试String#GetBytes()

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

}

答案 2 :(得分:2)

String不可迭代。但是你可以将String转换为char数组来迭代这样:

char[] fen = string.toCharArray();
for(char c : fen){
   //do your work
}

答案 3 :(得分:1)

for-each循环不会按预期工作。供参考http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

char[] fen = //define array here
for(char c : fen){
}