Java中的Foreach循环不';行不通

Java中的Foreach循环不';行不通,java,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#编写的游戏的源代码,其中的foreac

我试图在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){}

对于每个循环,都不会像您预期的那样工作。供参考


字符串不可迭代,请尝试:


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

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

如果要使用for each循环将字符迭代到字符串中,则必须说明:


(char c:str.toCharArray()){}
字符串的
不可迭代。但是,您可以将
String
转换为char数组进行如下迭代:

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

好吧,我承认。。这是因为我写了编译器的特定标准…(
for (byte b : str.getBytes(yourCharSet)) {

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