如何遍历String

mut*_*y91 13 java string loops

如何在Java中迭代字符串?

我正在尝试使用foreach样式进行循环

for(char x : examplestring)
{
    //action
}
Run Code Online (Sandbox Code Playgroud)

sur*_*ajz 35

如果要使用增强型循环,可以将字符串转换为charArray

    for (char ch : exampleString.toCharArray()){
        System.out.println(ch);
    }
Run Code Online (Sandbox Code Playgroud)

  • 这比我的版本更糟糕,因为它将`String`复制到函数返回的临时数组. (8认同)
  • @gertas这正是我所说的.因为数组是可变的,所以必须进行防御性复制.所以你有这个副本的成本是什么?句法糖.这就是为什么这是一个坏主意. (4认同)

cle*_*tus 31

Java String不是字符Iterable.你需要:

for (int i=0; i<examplestring.length(); i++) {
  char c = examplestring.charAt(i);
  ...
}
Run Code Online (Sandbox Code Playgroud)

我知道尴尬.