首页 > 解决方案 > 在没有尾随空格的值之间循环期间优雅地插入空格

问题描述

有没有办法在循环期间在值之间优雅地插入空格(或任何字符或字符串,我想)?例如,我想做以下事情:

for (int i = 0; i < 6; i++) {
  System.out.print(i + " ");
}

输出以下内容:

0 1 2 3 4 5

但是这段代码实际上在 5 之后留下了一个空格。我可以在循环之后添加一个修剪来剪掉任何空格,或者在循环之前执行第一个元素,索引 i=2,然后使用 print("" + i) ,但我想知道是否有一种更优雅、更简洁的方法可以在循环中的元素之间专门插入一个值。

编辑:正如 Arvind 指出的那样,它将是 0 1 2 3 4 5,而不是 1 2 3 4 5。

标签: javaloopsfor-loop

解决方案


以下是三个备选方案:

StringJoiner

StringJoiner sj = new StringJoiner(" ");
for (int i = 0; i < 6; i++) {
    sj.add(String.valueOf(i));
}

Collectors.joining()

String joined = IntStream.range(0, 6)
                  .mapToObj(String::valueOf)
                  .collect(Collectors.joining(" "));

String.join()

String[] strings = new String[6];
for (int i = 0; i < 6; i++) {
    strings[i] = i + "";
}
String joined = String.join(" ", strings);

推荐阅读