2011-03-28 33 views

回答

7

下面是做這件事的一種巧妙的方法:

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,它可能是mo再高效的生產與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); 
+2

+1這麼多種方法去皮膚貓。 – DJClayworth 2011-03-28 19:07:21

+0

我想,一旦我開始,我可能會完成 – Eric 2011-03-28 19:08:26

2

打印的第一個數字,然後打印 「」 +號之後。從i = start + 2開始;

0

試試這個:

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+","); 
} 
0

做這樣的事情 -

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

或者寫一個StringBuffer和刪除尾隨逗號循環後

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

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

希望這有助於!

相關問題