英文:
How can I print a comma separated list on 1 line with the last number ending without a comma/space/new line using a FOR loop?
问题
for (i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i]);
if (i < hourlyTemp.length - 1) {
System.out.print(", ");
}
}
这会给你想要的输出,但是末尾会有一个逗号。如何在末尾没有逗号?使用一个 for 循环是否可行?
英文:
for (i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i] + ", ");
}
this would give me the output that I want but with a comma the end. How can I do this without the comma at the end? is it even possible with a for-loop?
答案1
得分: 1
容易极了。
for(int i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i]);
if(i == hourlyTemp.length - 1) break;
System.out.print(",");
}
英文:
Easy peasy.
for(int i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i]);
if(i == hourlyTemp.length -1) break;
System.out.print(",");
}
答案2
得分: 0
你可以添加一个 if
语句来打印逗号:
for (i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i]);
if(i != (hourlyTemp.length - 1)){
System.out.print(", ");
}
}
英文:
you could add an if
statement for printing comma:
for (i = 0; i < hourlyTemp.length; i++) {
System.out.print(hourlyTemp[i]);
if(i != (hourlyTemp.length - 1)){
System.out.print(", ");
}
}
答案3
得分: 0
如果您不希望在循环内部使用 if 条件来避免在较大数组的情况下进行条件检查,您可以使用以下代码:
for (i = 0; i < hourlyTemp.length - 1; i++)
{
System.out.print (hourlyTemp[i] + ", ");
}
System.out.print (hourlyTemp[hourlyTemp.length - 1]);
英文:
If you don't want if condition inside a loop to avoid condition checking in case of larger array, you can use code below:
for (i = 0; i < hourlyTemp.length - 1; i++)
{
System.out.print (hourlyTemp[i] + ", ");
}
System.out.print (hourlyTemp[hourlyTemp.length - 1]);
答案4
得分: 0
我发现抑制前导逗号比抑制尾随逗号更容易,因为我们不必使用 length
来实现:
for (i = 0; i < hourlyTemp.length; i++) {
if (i != 0)
System.out.print(", ");
System.out.print(hourlyTemp[i]);
}
使用增强型 for 循环,你需要一个标志:
boolean first = true;
for (double temp : hourlyTemp) {
if (first)
first = false;
else
System.out.print(", ");
System.out.print(temp);
}
你还可以构建一个包含整行内容的 String
。这样做的性能更好,因为 print()
会带来一些开销:
StringBuilder buf = new StringBuilder();
for (double temp : hourlyTemp)
buf.append(", ").append(temp);
if (buf.length() != 0)
System.out.print(buf.substring(2));
使用 Java 8 中添加的 StringJoiner
更加简单:
StringJoiner buf = new StringJoiner(", ");
for (double temp : hourlyTemp)
buf.add(String.valueOf(temp));
System.out.print(buf.toString());
英文:
I find that suppressing a leading comma, instead of a trailing comma, is easier, since we don't have to use length
to do so:
for (i = 0; i < hourlyTemp.length; i++) {
if (i != 0)
System.out.print(", ");
System.out.print(hourlyTemp[i]);
}
With a for-each loop, you'd need a flag:
boolean first = true;
for (double temp : hourlyTemp) {
if (first)
first = false;
else
System.out.print(", ");
System.out.print(temp);
}
You can also build a String
with the entire line. That would perform better, since print()
has some overhead:
StringBuilder buf = new StringBuilder();
for (double temp : hourlyTemp)
buf.append(", ").append(temp);
if (buf.length() != 0)
System.out.print(buf.substring(2));
Using the StringJoiner
added in Java 8 is even easier:
StringJoiner buf = new StringJoiner(", ");
for (double temp : hourlyTemp)
buf.add(String.valueOf(temp));
System.out.print(buf.toString());
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论