我正在浏览 this question和 answers 之一给了 2 个选项,并说第一个可能更快。
我想知道为什么?
答案中提到的2个选项是
for(int i = 0, n = s.length() ; i < n ; i++) {
char c = s.charAt(i);
}
或
for(char c : s.toCharArray()) {
// process c
}
最佳答案
建议的第二个答案创建一个 char
数组并对其进行迭代。由于在迭代之前创建数组的额外开销,这种机制可能更慢;此开销与字符串的长度相关。
您引用的答案中未提及的第三种方法涉及使用 StringCharacterIterator
;例如
CharacterIterator it = new StringCharacterIterator("Hello, World");
char c;
while ((c = it.next()) != CharacterIterator.DONE) {
System.err.println("Char: " + c);
}
但是,我个人的偏好是在您引用的答案中使用第一个基于索引的解决方案。
关于java - 在 Java 中迭代字符串时,哪种方法更快,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767085/