如何使用Java for-each循环填充数组?

时间:2011-08-28 00:52:05

标签: java foreach

我之前发布了一个question试图在我的代码中发现错误,主要问题是我错误地使用了每个循环。我是Java的新手,并且想知道为什么我尝试的是不正确的,以及是否有任何可能的方法来执行每个循环的任务。

public Dids(String thing)
{
    letters= new char[thing.length()];  
    for(char i: letters){
        letters[i] = thing.charAt(i);
    }
}

我的想法是,因为我在循环之前声明了数组的大小,所以我可以遍历它。

3 个答案:

答案 0 :(得分:3)

使用foreach结构时,当前索引没有计数器,只有索引处的值。变量“i”是数组中当前点的值。

您可以使用普通的for循环

来完成此操作
for (int i=0; i<letters.length; i++)
   letters[i] = thing.charAt(i);

或者更简洁,

char[] letters = thing.toCharArray();

请参阅String.toCharArray()

答案 1 :(得分:1)

你的变量'i'取'字母'中每个字符的值。它不是一个索引,所以字母[i]没有任何意义。

如果您需要根据集合中每个元素的值采取行动,那么集合上的'foreach'构造仅对传统的for循环有帮助。如果您还需要使用集合中的索引,则传统的for循环将更容易。

答案 2 :(得分:0)

如果您想将String转换为字符数组(这就是您想要做的事情),只需使用String#toCharArray()

char[] letters = thing.toCharArray();