1
我正在使用Java將表格格式打印到文本文件。我有三列三行。訣竅是讓列排隊。什麼是找到它們之間的間距的方法?下面的代碼不起作用,因爲它設置使用自動間距寫入文本文件
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class makeTable {
static ArrayList<String> name = new ArrayList<String>();
static ArrayList<String> model = new ArrayList<String>();
static ArrayList<String> year = new ArrayList<String>();
public static void main(String arg[]) {
addData();
BufferedWriter writeTable = null;
try {
writeTable = new BufferedWriter(new FileWriter("/home/oveledar/Desktop/table.txt"));
for (int i = 0; i < name.size(); i++){
writeTable.write(name.get(i) + " " + model.get(i) + " " + year.get(i));
writeTable.newLine();
}
} catch (IOException e) {
System.err.println(e);
} finally {
if (writeTable != null) {
try {
writeTable.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
}
public static void addData(){
name.add("Dodge");
name.add("BMW");
name.add("VW");
model.add("Caravan");
model.add("323i");
model.add("Passat");
year.add("2006");
year.add("2009");
year.add("2011");
}
輸出
Dodge Caravan 2006
BMW 323i 2009
VW Passat 2011
「/ T」不長名工作
Dodge Caravan 2006
BMW 323i 2009
VW Long model name here 2011
對於比例字體(其中用空格填充不起作用),使用HTML,並編寫一個'
可能重複[如何在Java中填充字符串?](http://stackoverflow.com/questions/388461/how-can-i-pad-a-string-in-java) – agweber
回答
嘗試列之間的間距集使用String.format填充字符串()
這個問題應該告訴你它是如何工作的:How can I pad a String in Java?
在寫入文件之前,將每個元素填充到長度相等的字符串中。
來源
2013-08-20 15:45:08
就像您使用新行換碼符
\n
來創建一個新行一樣,在每個控制檯寫入之後,您應該爲製表符包含一個轉義字符\t
,而不是嘗試將其與任意空格對齊。來源
2013-08-20 15:47:11
它不起作用對於某些情況下,如果名稱更長。 SEe編輯 – ono
如果數據沒有接近相同的長度,使用製表符不一定會垂直排列。
更好的解決方案是用PrintWriter類包裝BufferedWriter並使用printf方法。
像這樣:
的 「 - 」 左對齊的列和20是列的寬度。查看格式規範的java.util.Formatter javadocs。
來源
2013-08-20 21:46:15 user2679791
相關問題