我之前发布了一个question试图在我的代码中发现错误,主要问题是我错误地使用了每个循环。我是Java的新手,并且想知道为什么我尝试的是不正确的,以及是否有任何可能的方法来执行每个循环的任务。
public Dids(String thing)
{
letters= new char[thing.length()];
for(char i: letters){
letters[i] = thing.charAt(i);
}
}
我的想法是,因为我在循环之前声明了数组的大小,所以我可以遍历它。
答案 0 :(得分:3)
使用foreach结构时,当前索引没有计数器,只有索引处的值。变量“i”是数组中当前点的值。
您可以使用普通的for循环
来完成此操作for (int i=0; i<letters.length; i++)
letters[i] = thing.charAt(i);
或者更简洁,
char[] letters = thing.toCharArray();
答案 1 :(得分:1)
你的变量'i'取'字母'中每个字符的值。它不是一个索引,所以字母[i]没有任何意义。
如果您需要根据集合中每个元素的值采取行动,那么集合上的'foreach'构造仅对传统的for循环有帮助。如果您还需要使用集合中的索引,则传统的for循环将更容易。
答案 2 :(得分:0)
如果您想将String转换为字符数组(这就是您想要做的事情),只需使用String#toCharArray()
char[] letters = thing.toCharArray();