gpt4 book ai didi

java - 如何使用 Lambda 和 Streams 在 Java 8 中反转单个字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:20 27 4
gpt4 key购买 nike

我有一个字符串 "Aniruddh",我想在 Java 8 中使用 lambda 和流来反转它。我该怎么做?

最佳答案

给定一个字符串

String str = "Aniruddh";

规范解是

String reversed = new StringBuilder(str).reverse().toString();

如果,也许出于教育目的,你想通过流过字符串的字符来解决这个问题,你可以这样做

String reversed = str.chars()
.mapToObj(c -> (char)c)
.reduce("", (s,c) -> c+s, (s1,s2) -> s2+s1);

这不仅要复杂得多,而且还有很多性能缺陷。

以下解决方案消除了装箱相关的开销

String reversed = str.chars()
.collect(StringBuilder::new, (b,c) -> b.insert(0,(char)c), (b1,b2) -> b1.insert(0, b2))
.toString();

但效率仍然较低,因为插入到基于数组的缓冲区的开头意味着复制所有先前收集的数据。

因此,底线是,对于实际应用,请继续使用开头显示的规范解决方案。

关于java - 如何使用 Lambda 和 Streams 在 Java 8 中反转单个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47504758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com