![](/img/trans.png)
[英]Do IDEs and compilers have different spacing for /t spacing? (JAVA on IntelliJ)
[英]\t not consistent with spacing in Java
所以我用過這個:
System.out.println("Of what race do you belong?\n[H]uman\t [E]lf\t [D]warf\t [O]rc\t [G]nome");
並且已經放置了具有非常隨機間距的打印件。 我也用過這種相同類型的東西:
System.out.println("Which of the following are you?\n[W]arrior\t [R]ogue\t [M]agician");
為了獲得完美的間隔休息時間。 有什么理由可以讓我與第一個奇怪的間距?
\\ t是標簽。 打開常規文本編輯器並檢查選項卡的行為方式。 它縮進到某個位置。 它不會插入x個空格。
\\t
插入一個TAB字符,而不是空格。 知道這一點, 就不應該使用制表符來格式化數據輸出。
由於這會向用戶顯示數據,因此最好使用String#format
,它允許為文本的左側和右側提供空間。
這是使用%-15s
的示例:
//splitted in 2 lines for better understanding
String outputText = String.format("Of what race do you belong? %-15s %-15s %-15s %-15s %-15s",
"[H]uman", "[E]lf", "[D]warf", "[O]rc", "[G]nome");
System.out.println(outputText);
哪里:
%s
表示它會將一個String
添加到輸出中。 15
是定位字符串的空格數 -
表示應該左對齊。 以上代碼輸出:
Of what race do you belong? [H]uman [E]lf [D]warf [O]rc [G]nome
只需修改-15
即可縮短空格的長度。
有關如何正確格式化輸出文本的詳細信息:
String#format
時在幕后使用的java.util.Formatter
類。 請注意,使用System.out.printf
也會在場景后面使用Formatter
。
\\t
字符是制表符。
后續標簽“不一致”,因為它們不會顯示相同的空間量。
您應該使用常規數量的空格。
就像是:
System.out.println("Of what race do you belong?\n[H]uman [E]lf [D]warf [O]rc [G]nome");
使用\\t
您要添加選項卡而不是空格。
正如其他人所說的那樣\\ t是制表符,空格總是一列,但制表符可能是不同數量的列,具體取決於您的環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.