在不改变单词顺序的情况下反转字符串中的单词

内容分享2小时前发布
15 0 0

学习如何使用Java 8 Stream API和StringUtils类反转Java字符串中的单词,这样每个单词的顺序保持不变,只是单词中的字符就地反转。

原始字符串 – “Hello world”
反转单词 – “olleH dlrow”

1. 使用Stream和StringBuilder

反转每个单词的算法很简单:
• 使用String.split()方法对字符串进行标记化。
• 使用Stream循环遍历字符串数组,使用StringBuilder.reverse()方法反转每个单词。
• 通过连接Stream元素来连接所有反转的单词。

String input = "Hello world";

String reversed = Arrays.stream(input.split(" ")) 
    .map(word -> new StringBuilder(word).reverse())
    .collect(Collectors.joining(" "));

System.out.println(reversed);

程序输出

olleH dlrow

2. 使用StringUtils

StringUtils类来自Apache命令lang3库。其reverseDelimited() API反转每个单词并用一样的分隔符连接回字符串。在我们的例子中,我们将使用空格字符作为分隔符。

String input = "Hello world";

String reversed = StringUtils.reverseDelimited(StringUtils.reverse(input), ' ');

System.out.println(reversed);

程序输出

olleH dlrow
© 版权声明

相关文章

暂无评论

none
暂无评论...