繁体   English   中英

如何在不添加结尾逗号的情况下将一堆数字与逗号连接起来?

[英]How can I concatenate a bunch of numbers with commas, without adding a trailing comma?

PrintWriter fout = new PrintWriter(new BufferedWriter(
    new FileWriter("numbers.dat")
)); 
for(int i = start; i <= 100; i = i + 2) { 
    fout.print(i + ", "); 
}

现在我的输出是这样的:

2, 4, 6, 8, 10,

我想要的是:

2, 4, 6, 8, 10

这是一种整洁的方法:

PrintWriter fout = new PrintWriter(new BufferedWriter(
    new FileWriter("numbers.dat")
)); 

String sep = "";
for(int i = start; i <= 100; i += 2) { 
    fout.print(sep + i);
    sep = ", ";
}

这是另一种方式:

PrintWriter fout = new PrintWriter(new BufferedWriter(
    new FileWriter("numbers.dat")
)); 

for(int i = start; i <= 100; i += 2) { 
    fout.print((i == start ? "" : ", ") + i);
}

在不太确定PrintWriter的功能的情况下,首先使用StringBuffer生成字符串可能会更有效:

PrintWriter fout = new PrintWriter(new BufferedWriter(
    new FileWriter("numbers.dat")
));

StringBuffer buffer;

for(int i = start; i <= 100; i += 2) { 
    buffer.append(i == start ? "" : ", ").append(i);
}

fout.print(buffer);

或更有效地:

PrintWriter fout = new PrintWriter(new BufferedWriter(
    new FileWriter("numbers.dat")
));

StringBuffer buffer;

for(int i = start; i <= 100; i += 2) { 
    buffer.append(i).append(", ");
}

buffer.setLength(buffer.length()-1);

fout.print(buffer);

打印第一个数字,然后打印“,” +数字。 从i开始= start + 2;

尝试这个:

 PrintWriter fout = new PrintWriter(new BufferedWriter(new FileWriter("numbers.dat"))); 
 for(int i = start; i <= 100; i += 2)    { 
     if(i + 2 <= 100)  
        fout.print(i+","); 
 }

做类似的事情-

fout.print(i);
if (i < 100) {
    fout.print(",");
}

或在循环后写入StringBuffer并删除结尾的逗号

StringBuffer sb = new StringBuffer();
for(...){
...
}

sb.deleteCharAt(sb.length() -1);
fout.print(sb.toString());

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM