簡體   English   中英

在說明符之間使用空格

[英]Using spaces between specifiers

我最近開始學習JAVA。 我目前正在做一些有關stdout和格式化的日常練習。

行使:

輸出的每一行必須有2列第一列:左對齊為15個字符的字符串第二列:以三位數字表示的整數

我終於想出了辦法,並提出了:

System.out.format("%-15s %03d %n",s1 , x );

但是當我運行程序時出現錯誤。

后來當我刪除說明符之間的空格時

System.out.format("%-15s%03d%n",s1 , x );

該代碼似乎有效。

只是想知道不添加空間時會有什么不同。

格式字符串中添加的空格將是原義空格。 這意味着您將從提供的字符串的開頭得到15個空格, 再加上一個空格,因此總間距為16。這同樣適用於添加到輸出的數值。 %03d之后的空格將在數值后添加一個額外的空格。 知道這一點,您可以將其應用於示例:

String s1 = "My Name";
int x = 61;
System.out.format("%-15s %03d %n", s1, x ); // Spaces in format.
System.out.format("%-15s%03d%n", s1, x );   // No Spaces in format.

輸出將是:

My Name         061 
My Name        061

鑒於:

My Name         061 
^^^^^^^^^^^^^^^^^^^^
|      16      ||4 |

My Name        061
^^^^^^^^^^^^^^^^^^
|     15      ||3|

這種格式(無論哪種方式) 都不會產生錯誤。 如果為format()方法提供的任何一個或兩個變量具有錯誤的數據類型,則將產生錯誤。 變量s1是否聲明為字符串,變量x是否聲明為十進制整數( int )? 如果沒有,那么您最終可能會遇到IllegalFormatConversionException 請參閱此處以獲取與format()方法一起使用的正確轉換器標記。

暫無
暫無

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

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