600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Java对string按空格切分_使用Java 8流(lambdas)将空格分割为字符串

Java对string按空格切分_使用Java 8流(lambdas)将空格分割为字符串

时间:2022-07-29 15:16:35

相关推荐

Java对string按空格切分_使用Java 8流(lambdas)将空格分割为字符串

我正在编写一个Xor方法,通过向其字符添加(作为xor操作)随机值来编写一些字符串.结果应该看起来像带有加密字符的十六进制值的字符串.

例:

“Hello world”=> “0006F 00046 00066 00076 0004D 0007F 00047 0007D 00062 0006E”

代码:

StringBuilder sb = new StringBuilder();

inputText.chars() // get char stream

.filter(c -> c != ) // remove spaces

.map(c -> c ^ random.nextInt(randBound)) // do xor for each char

.boxed() // to Integer stream

.map(i -> String.format("%05X ", i & 0xFFFFF)) // to Hex String values

.forEach(sb::append);

if (sb.length() > 0)

sb.deleteCharAt(sb.length() - 1);

return sb.toString();

如你所见,我将结果格式化为“?X”,所以我在字符串的末尾有不需要的空格.并且需要使用sb.deleteCharAt(sb.length() – 1);.

如何直接在流中格式化正确的结果?

解决方法:

您想要的是将Stream的元素收集到String中.这可以使用Collectors.joining(delimiter)完成:

inputText.chars() // get char stream

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。