【发布时间】:2020-05-21 17:07:13
【问题描述】:
我需要在屏幕上打印一些存储在 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 子句中做同样的事情吗?如何控制迭代是否在最后一个数据部分?
【问题讨论】:
-
您可以构建
String或StringBuilder而不是立即打印,然后用substring之类的内容删除最后一个逗号,然后一起打印出String。如果你真的想保留增强的for循环。 -
@Andornicus 您添加了
java-8和java-stream标签,但是您如何知道Java 版本?问题是关于自 Java 5 以来就存在的增强型for循环。 -
@Nexevis 嗯,你是对的。我已经习惯了 java-8 的流,“foreach”让我想起了流和集合上的 foreach 方法,感谢您指出这一点。
标签: java for-loop if-statement foreach collections