簡體   English   中英

\\ t與Java中的間距不一致

[英]\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即可縮短空格的長度。

有關如何正確格式化輸出文本的詳細信息:

請注意,使用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.

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