Java 中整數的格式說明符
本教程討論 Java 中整數的格式說明符。我們將看到格式說明符並將它們用於整數以在螢幕上顯示輸出。
什麼是 Java 中的格式說明符
格式說明符告訴螢幕上將列印哪種型別的資料,也用於從使用者那裡獲取輸入。這些格式說明符以百分比符號 (%
) 開頭,後跟表示資料型別的型別字元,例如 int
、string
、float
等。
Java 中整數的格式說明符
我們可以格式化 short
、Short
、byte
、Byte
、BigInteger
、long
和 Long
的值。我們可以使用整數的格式說明符來格式化整數;我們還有各種可以與它們一起使用的 flags。
d
- 用於將引數格式化為十進位制整數;我們不能對此使用#
標誌。o
- 用於將引數格式化為 base-8 整數,我們不能使用'(', '+', ' ', ','
標誌。輸出將從零開始 (0
) 如果我們使用#
標誌。x
或X
- 用於將引數格式化為 base-16 整數。如果我們使用帶有#
標誌的x
,則輸出以0x
開頭。
通過使用帶有 #
標誌的 X
,輸出將是 0X
。如果引數的資料型別是 int
/Integer
, long
/Long
, short
/Short, 我們不能使用
’(’, ‘+’, ’ ‘, ‘,’ 標誌
,或 byte
/Byte
。
如果引數的資料型別是 BigInteger
,我們不能使用 ,
標誌。
請記住,precision
不適用於整數的格式說明符。
Java 中%d
的使用
示例程式碼:
System.out.printf("'%d' %n", 5678);
輸出:
'5678'
在這裡,printf()
語句列印數字並根據指定的格式說明符對其進行格式化。 %d
表示一個整數,%n
用於列印新行。
示例程式碼:
System.out.printf("'%6d' %n", 5678);
System.out.printf("'%6d' %n", 25695678);
輸出:
' 5678'
'25695678'
%6d
表示需要在螢幕上列印的最少字元數。如果數字小於 6 位,則會用空格填充。
請參閱上面的輸出以獲取數字為 ' 5678'
,因為它不是 6 位數字並且用空格填充。如果輸出甚至大於 6 位,則不會截斷輸出(請參見上面程式碼中的第二個 printf()
語句及其各自的輸出)。
示例程式碼:
System.out.printf("'%-6d' %n", 5678);
System.out.printf("'%-6d' %n", 25695678);
輸出:
'5678 '
'25695678'
%-6d
與我們在前面的示例中為 %6d
學習的概念相同,但該數字將在右側用空格填充(如果它小於 6 位)。如果是較大的數字,結果將不會在此處被截斷。
你是否正在尋找新增零而不是空格的解決方案?請參閱以下示例。
示例程式碼:
System.out.printf("'%06d' %n", 5678);
輸出:
'005678'
結果使用%06d
填充零而不是空格。請記住,我們只能使用 0
標誌在左側新增零。
示例程式碼:
System.out.printf("'%(d' %n", 5678);
System.out.printf("'%(d' %n", -5678);
輸出:
'5678'
'(5678)'
在這裡,我們使用帶有%d
的 (
標誌作為%(d
,如果是負數則將 ()
內的數字括起來,否則不影響結果。見上我們使用帶有正數和負數的 (
標誌的程式碼示例。
示例程式碼:
System.out.printf("'% d' %n", 5678);
System.out.printf("'% d' %n", -5678);
輸出:
' 5678'
'-5678'
使用 % d
將在結果中新增前導空格,但僅適用於正數。請參閱上面給出的輸出。
你是否正在尋找一種解決方案來列印帶有+
的正數和帶有 -
符號的負數?請參閱以下程式碼。
示例程式碼:
System.out.printf("'%+d' %n", 5678);
System.out.printf("'%+d' %n", -5678);
輸出:
'+5678'
'-5678'
在這裡,%+d
幫助我們在數字為正數時新增+
符號,如果數字為負數則新增 -
。
Java 中%o
和%x
的使用
如果我們將 x
和 o
與資料型別為 int
/Integer
、short
/Short
或 Long
/long
的負數一起使用,則值(引數值)將首先通過向其新增數字 2N
來轉換為無符號數字(N
顯示位的數字)。
請記住,BigInteger
引數不受這些轉換的影響。請參見下面給出的例項。
示例程式碼:
byte b1 = 1;
byte b2 = -3;
System.out.printf("%o\n", b1);
System.out.printf("%o", b2);
輸出:
1
375
看看下面給出的另一個示例程式碼。
System.out.printf("%#o %n", 5789);
System.out.printf("%#x %n", 5789);
System.out.printf("%#X %n", 5789);
輸出:
013235
0x169d
0X169D
不要擔心這個輸出;讓我們按順序學習所有 printf()
語句。這裡,%o
用於 base-8 整數(也稱為八進位制值),%x
或 %X
用於 base-16 整數(十六進位制值)。
如果 #
標誌分別與%o
、%x
和%X
一起使用,則輸出以 0
、0x
和 0X
開始。檢查以下截圖,說明如何轉換輸出。