2015-06-20 38 views
-1
「\ t」的爲表對準

我的代碼使用一個for循環,像這樣:在Java中使用

for(int i=0; i<100; i++) 
{ 
    System.out.print(number + "\t"); 
} 

當然我的for循環比這要複雜得多,但我只是輸入,在用於演示目的。我在表格中使用「\ t」進行對齊,但這會使列打印太遠。我目前的輸出是:

1  2  3  4 
-- -- -- --   
1  1  1  4       
0  2  2  2     
0  0  3  3 

我該如何減少標籤「\ t」製造的空間? 我的另一個問題是我如何分割80個字符的行,以便我的輸出不超過頁面寬度?

+4

有在Java中可用的格式打印機API自1.5使用某些 「標準的」 序列來格式化輸出。查看http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html –

+3

請注意,製表符所代表的空間數量完全是您的控制檯窗口或文件編輯器的功能。不是真正的Java問題... – dhke

回答

0

更好的辦法是使用System.out.format(使用適當的格式)比System.out.println。看到Javadoc和這個不錯的cheatsheet

public class Misc { 
    public static void main(String args[]){ 
     String format = "|%1$-10s|%2$-10s|%3$-20s|\n"; 
     System.out.format(format, "FirstName", "Init.", "LastName"); 
     System.out.format(format, "Dick", "", "Smith"); 
     System.out.format(format, "John", "D", "Doe"); 

     String ex[] = { "John", "F.", "Kennedy" }; 

     System.out.format(String.format(format, (Object[])ex)); 
    } 
} 

輸出:

|FirstName |Init.  |LastName   | 
|Dick  |   |Smith    | 
|John  |D   |Doe     | 
|John  |F.  |Kennedy    | 
+0

你能解釋一下%1 $ -10s中的數字代表什麼?這是否允許我將該行分成80個字符? – Chalupa

+0

如何在我有大量字符串時使用此功能?像100.我不能單獨鍵入每個人 – Chalupa

+0

@Chalupa%1 $是匹配第一個參數作爲字符串的地方,-10s將字符串格式化爲左對齊,寬度爲10個空格。閱讀2個給定的鏈接,瞭解它是如何工作的!至於第二個問題,那麼......你可以有一個數組或文件與你的數據,並通過他們的元素循環逐行打印。 – RealHowTo