哪个循环最适合在 java 中迭代字符串

Which loop which is best for iterating for strings in java

提问人:Satish Chauhan 提问时间:10/31/2023 更新时间:10/31/2023 访问量:44

问:

我总是使用普通的 for 循环,即。

for(int i=0;i<s.length;i++){}

对于遍历字符串,尽管它迭代字符串的简单方法,任何人都可以向我推荐其他类型的循环方法,该方法更有效,语法更短,可以使代码更干净和可读。

感谢您的帮助,顺便说一句,我是在线社区的新手。

for (int i = 0; i < s.length(); i++){
    char c = s.charAt(i);        
}

我总是使用这种方法。

Java 数组 字符串 循环

评论

1赞 MarsAtomic 10/31/2023
出于好奇,你为什么在乎?如果您需要将 String 的每个字符搜索或操作为 char,那么您正在做的事情就可以了。你的代码总是取决于作业的要求,所以没有“最佳”的方法。抵制进行不必要的优化的诱惑。如果你的代码没有按照你需要的方式做你需要它做的事情,那么就探索替代方案。
0赞 Old Dog Programmer 10/31/2023
你的方法没有错。几十年来,它在 Java 中很常见,并且很容易识别和理解。可能存在使替代方案之一更好的情况。但是,由于我们不知道这些情况,我们不能说。
0赞 Rob Spoor 10/31/2023
老实说,没有太多选择。有它的实现,但这很麻烦。有使用,但会创建一个副本。但是,这要么需要完整副本,要么需要部分副本和嵌套循环(外部循环,内部循环用于已读取的循环)。如果你想把事情做得更复杂,有.但最终,在所有这些中,简单的循环 with 仍然是首选。CharacterIteratorStringCharacterIteratortoCharArray()getCharsgetCharschar[]StringReadercharAt
0赞 Rob Spoor 10/31/2023
不过,有一种替代方案实际上很有趣,那就是使用 .这返回了一个,因此您需要在将其参数添加到任何等之前将其参数转换为,否则您将得到意外的结果。chars()IntStreamcharStringBuilder
1赞 tbatch 10/31/2023
这回答了你的问题吗?在 Java 中遍历字符串字符的最简单/最好/最正确的方法是什么?

答:

0赞 Nuradil Zhanadil uulu 12/13/2023 #1

有多种方法可以循环 String,其中一些选项可能是:

//Using For Each loop
String str = "Hello, World!";
for (char c : str.toCharArray()) {
    // Process or print the character 'c'
}

//Using Java streams
String str = "Hello, World!";
str.chars().forEach(c -> {
    // Process or print the character 'c'
});