首页 > 解决方案 > 如何知道 Java 中 for-each 中的迭代值?

问题描述

我需要在屏幕上打印一些数据,这些数据存储在一个String看起来像这样的数组中:

String[] names = {"Joe", "Jessica", "Javi", "James", "Kevin"};

我试图以这种方式执行它,使用 for-each 子句:

for (String i: names) {
   System.out.print(name);
   System.out.println(",");
}

其输出将是:

Joe,
Jessica,
Javi,
James,
Kevin,

但我想去掉最后一个逗号。在正常的 each 子句中,我将创建一个 if 子句来控制它:

for (int i=0; i<names.length; i++) {
    System.out.print(name);

    if(i!=names.length - 1) {
         System.out.println(",");
    }
}

我可以在 for-each 子句中做同样的事情吗?我如何控制迭代是否在最后一个数据部分?

标签: javafor-loopif-statementforeachcollections

解决方案


你可以使用这个:

var a = String.join(",\n", List.of("a", "b", "c"))

正如@RealSkeptik 建议的那样,它可以简化为:

var a = String.join(",\n", "a", "b", "c")

在这种情况下,我发现它比将Strings 转换为流更具可读性。

然后

System.out.println(a)

结果是:

a,
b,
c

推荐阅读