如何用Java';每个循环都有什么?

如何用Java';每个循环都有什么?,java,foreach,Java,Foreach,我之前发布了一篇文章,试图在代码中查找错误,主要问题是我错误地使用了for-each循环。我是Java新手,想知道为什么我所尝试的不正确,以及是否有任何可能的方法使用for-each循环来完成任务 public Dids(String thing) { letters= new char[thing.length()]; for(char i: letters){ letters[i] = thing.charAt(i); } } 我的想法是,既然我

我之前发布了一篇文章,试图在代码中查找错误,主要问题是我错误地使用了for-each循环。我是Java新手,想知道为什么我所尝试的不正确,以及是否有任何可能的方法使用for-each循环来完成任务

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

我的想法是,既然我在循环之前声明了数组的大小,我就能够遍历它

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


如果需要根据集合中每个元素的值采取操作,则集合上的“foreach”构造仅对传统for循环有实际帮助。如果还需要使用集合中的索引,则传统的for循环将更容易。

如果要将字符串转换为字符数组(这似乎是您想要做的),只需使用


对于foreach构造,当前索引没有计数器,只有索引处的值。变量“i”是数组中当前点的值

您可以使用普通的for循环来实现这一点

for (int i=0; i<letters.length; i++)
   letters[i] = thing.charAt(i);

请参见

您正在使用每个位置的字母作为索引。。。一切都扭曲了。:-)你可能是指(inti=0;ifor (int i=0; i<letters.length; i++) letters[i] = thing.charAt(i);
char[] letters = thing.toCharArray();