Java 中整數的格式說明符

Mehvish Ashiq 2024年2月15日
  1. 什麼是 Java 中的格式說明符
  2. Java 中整數的格式說明符
  3. Java 中%d 的使用
  4. Java 中%o%x 的使用
Java 中整數的格式說明符

本教程討論 Java 中整數的格式說明符。我們將看到格式說明符並將它們用於整數以在螢幕上顯示輸出。

什麼是 Java 中的格式說明符

格式說明符告訴螢幕上將列印哪種型別的資料,也用於從使用者那裡獲取輸入。這些格式說明符以百分比符號 (%) 開頭,後跟表示資料型別的型別字元,例如 intstringfloat 等。

Java 中整數的格式說明符

我們可以格式化 shortShortbyteByteBigIntegerlongLong 的值。我們可以使用整數的格式說明符來格式化整數;我們還有各種可以與它們一起使用的 flags

  1. d - 用於將引數格式化為十進位制整數;我們不能對此使用 # 標誌。
  2. o - 用於將引數格式化為 base-8 整數,我們不能使用 '(', '+', ' ', ',' 標誌。輸出將從零開始 ( 0) 如果我們使用 # 標誌。
  3. xX - 用於將引數格式化為 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 的使用

如果我們將 xo 與資料型別為 int/Integershort/ShortLong/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 一起使用,則輸出以 00x0X 開始。檢查以下截圖,說明如何轉換輸出。

java 中整數的格式說明符 - 數字轉換

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - Java Format Specifier