提问人:Habibur Rahman 提问时间:11/13/2023 更新时间:11/13/2023 访问量:48
如何使用流在 StringBuilder 中添加整数数组的所有元素,为每个元素添加额外的空间
How to add All the elements of an integer array in a StringBuilder using stream adding extra space to each of the element
问:
我正在尝试使用以下代码将数组的所有元素添加到 a 中。int
brr
StringBuilder
res
我尝试了以下方法
StringBuilder res = new StringBuilder();
Arrays.stream(brr).forEach(res::append);
我想要以下输出
0 1 2 3 4 5
我找到了以下输出
012345
答:
2赞
Rifat Rubayatul Islam
11/13/2023
#1
如果你不介意尾随空间,你可以这样做
Arrays.stream(brr).forEach(i -> res.append(i).append(" "));
如果不想打印尾随空格,可以修剪字符串
System.out.println(res.toString().trim());
1赞
Basil Bourque
11/13/2023
#2
TL的;博士
单行:
String.join (
" " ,
Arrays.stream ( ints ).mapToObj ( String :: valueOf ).toArray ( String[] :: new )
)
0 1 2 3 4 5
详
制作一些示例数据。
int[] ints = IntStream.rangeClosed ( 0 , 5 ).toArray ( );
将每个原始值转换为文本,每段文本都是一个字符,即我们数字的基于 -的版本。将这些对象收集到一个数组中。int
String
String
String[] strings = Arrays.stream ( ints ).mapToObj ( String :: valueOf ).toArray ( String[] :: new );
将该数组中的字符串连接在一起,在内部仅用空格字符分隔。没有尾随 SPACE,这是 String.join
的一个方便的好处。
String result = String.join ( " " , strings );
把这些放在一起。
int[] ints = IntStream.rangeClosed ( 0 , 5 ).toArray ( );
String[] strings = Arrays.stream ( ints ).mapToObj ( String :: valueOf ).toArray ( String[] :: new );
String result = String.join ( " " , strings );
System.out.println ( "result = " + result );
请参阅此代码在 Ideone.com 运行。
结果 = 0 1 2 3 4 5
2赞
Thiyagu
11/13/2023
#3
如果使用 StringBuilder 不是必需的,那么您可以执行以下操作。
调用将返回 .使用 with 作为映射器会将原始 int 转换为 String。这将返回一个 .最后,使用 ,我们可以将流的各个字符串元素与空格连接起来。Arrays.stream()
IntStream
mapToObj
String::valueOf
Stream<String>
Collectors.joining
String result = Arrays.stream(a)
.mapToObj(String::valueOf)
.collect(Collectors.joining(" "));
评论