如何将 for-each 循环应用于字符串中的每个字符?

2022-08-31 05:46:54

因此,我想迭代字符串中的每个字符。

所以我想:

for (char c : "xyz")

但是我得到一个编译器错误:

MyClass.java:20: foreach not applicable to expression type

我该怎么做?


答案 1

最简单的方法就是使用:charStringtoCharArray()

for (char ch: "xyz".toCharArray()) {
}

这为您提供了每个构造的简洁性,但不幸的是(这是不可变的)必须执行防御性复制才能生成(这是可变的),因此存在一些成本损失。Stringchar[]

文档中

[toCharArray()returns] 一个新分配的字符数组,其长度是此字符串的长度,其内容已初始化为包含此字符串所表示的字符序列。

有更详细的方法来迭代数组中的字符(常规 for 循环等),但如果你愿意为每个字符付费,则每种方法都是最简洁的。CharacterIteratortoCharArray()


答案 2
String s = "xyz";
for(int i = 0; i < s.length(); i++)
{
   char c = s.charAt(i);
}