如何解决我不明白使用流反转字符串的代码
请说明以下代码,以流方式反转字符串:
public static String reverse(String test) {
return IntStream.range(0,test.length())
.map(i -> test.charAt(test.length() - i - 1))
.collect(StringBuilder::new,(sb,c) -> sb.append((char) c),StringBuilder::append)
.toString();
}
解决方法
该方法可以分为5个关键领域:
public static String reverse(String test) {
return IntStream.range(0,test.length())
.map(i -> test.charAt(test.length() - i - 1))
.collect(StringBuilder::new,(sb,c) -> sb.append((char) c),StringBuilder::append)
.toString();
}
在第1行,将String传递到要以相反顺序返回的方法。例如,字符串测试可以等于“世界”
在第2行上,将数字流传递到与传递的String一样长的流中。如果test等于“ world”,则数字流将为0、1、2、3 ,4
在第3行上,数字从存在的字符串的后面映射到数字中。因此,数字0映射到test.length(5)-i(0)-1字符中。因此,数字0被映射到点4处的字符。这等于“ d”。对于其他所有数字都执行此操作,因此0 = d,1 = l,2 = r,3 = o,4 = w。
在第4行上,将创建一个新的Stringbuilder,并将每个字符附加到StringBuilder中,以便在出现字符时将其添加(d-> l-> r-> o-> w)
最后,在第5行,使用toString()方法返回StringBuilder。
结果,字符串“ world”被反转。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。