簡體   English   中英

如何在Java中的文本字段中格式化輸出?

[英]How to format output in a textfield in Java?

我將文字附加到文本字段。 由於某些狀態具有長名稱,因此列的格式不正確。 我能做什么?

...
_result.append(text+"\n");

看起來像:

Alabama       1900       Birmingham       Wide-Awake       1
District of Columbia       1901       Birmingham       Wide-Awake       40
Illinois       1900       Blakeley       Blakeley Sun       10
Colorado       1901       Blakeley       Blakeley Sun       20
West Virginia       1900       Cahawba       Alabama Watchman       30
Alabama       1901       Cahawba       Alabama Watchman       50

您可能需要根據列中最長的字符串添加制表符。 像這樣的東西:

// add a tab(s) after each column value
_result.append(columnFiled +"\t");

//Finally add a new line
_result.append("\n");

您可以使用Formatter類以給定格式格式化字符串。 這允許您指定格式說明符,通過它可以設置每個參數的寬度。 通過這樣做,您可以正確對齊列。

String[][] stateInfo = new String[][]{
                        {"Alabama", "1900", "Birmingham", "Wide-Awake", "1"},
                        {"Illinois", "1900", "Blakeley", "Blakeley Sun", "10"}};
for (String[] si: stateInfo){
    String s = String.format("%1$-12s %2$-5s %3$-12s %4$-12s %5$-2s ",
                                    si[0],si[1],si[2],si[3],si[4]);
    System.out.println("String:"+s);
}

格式為%1s:

's','S'=如果參數arg為null,則結果為“null”。 如果arg實現了Formattable,則調用arg.formatTo。 否則,通過調用arg.toString()獲得結果。

“ - ”=結果將是左對齊的。

有關支持的其他格式,請參閱Formatter Class中的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM