2012-05-20 120 views
-4

我正在尝试在Java中为每个字符串中的每个字符迭代创建for-each循环。当我试图做到这一点我在NetBeans中得到一个错误:Java中的Foreach循环不起作用

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

这是Java代码上,我得到一个错误:

for(char c : fen){ 
} 

fen是一个String

我想了解在C#中编写的游戏的源代码以及在那里工作的foreach循环:

foreach(char in fen){} 
+1

http://stackoverflow.com/questions/196830/what-is-the-easiest-best-most-correct-way-to-iterate通过字符的 – mixel

+0

好的,我承认它..这是因为我写了编译器的特定参数... :-( – Thihara

回答

2

字符串不是可重复的,尝试String#GetBytes()

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

} 
18

你得到的编译错误信息是很清楚的。

对于每个循环都适用于阵列和IterableString不是数组。它包含字符数组,但它不是数组本身。 String也不实现接口Iterable

如果你想在角色使用for-each循环迭代到字符串中,你不得不说:

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

2

String是不是可重复的。但是你可以转换到String字符数组遍历这样的:

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