Java 輸出printf()方法

Java 輸出printf()方法

Java 輸出 printf() 方法

❮ 輸出方法

示例

在控制檯列印一些格式化的文字。

字元 %s 是字串 "World" 的佔位符

System.out.printf("Hello %s!", "World");

自己動手試一試 »

注意: 你會在頁面底部找到更多“自己動手”的示例。

定義和用法

printf() 方法輸出一個格式化的字串。

附加引數中的資料被格式化並寫入格式化字串中的佔位符,這些佔位符用 % 符號標記。引數的格式化方式取決於 % 符號後面的字元序列。

佔位符

佔位符的形式為 %[arg$][flags][width][.precision]conversion。方括號 [ ] 中的部分是可選的。

每個元件的解釋

arg$ - 可選。一個數字後跟一個 $ 符號,表示使用哪個附加引數,引數編號從 1 開始。這可以用 < 替換,表示使用前一個佔位符的引數。

flags - 可選。以下任意字元的序列

- - 使輸出左對齊,透過在右側新增填充空格而不是左側。

+ - 使正數始終以 "+" 作為字首。

- (一個空格字元) 在正數前加上空格,主要目的是使數字能夠與負數對齊。

0 - 用零填充數字的左側。

, - 對數字進行分組(例如按千位)並在組之間放置分隔符。

width - 可選。一個整數,指定輸出應占用的最小字元數。如有必要,在右側新增空格以達到此數字,如果使用了 - 標誌,則在左側新增空格。

.precision 可選。一個 . 後跟一個整數,表示在格式化資料中顯示多少個小數位數。

conversion - 必需。一個字元,表示引數的資料應如何表示。如果字元是大寫,則資料將在可能的情況下以大寫格式顯示。可能的字元列表如下表所示。

轉換列表

字元

轉換

描述

%

百分比

在輸出中顯示字面意義上的 "%" 字元。

n

換行

在輸出中顯示換行符。

b 或 B

布林值

將布林值引數顯示為 "true" 或 "false"。如果使用 "B",則顯示 "TRUE" 或 "FALSE"。

c 或 C

Unicode 字元

顯示引數的 Unicode 字元表示。對於整數,這是與數字對應的 Unicode 字元。如果使用 "C",則字元將在可能的情況下轉換為大寫。

s 或 S

字串

顯示引數的預設字串表示。如果使用 "S",則字串將轉換為大寫(在可能的情況下)。

d

十進位制整數

將整數表示為十進位制整數。

h 或 H

無符號十六進位制整數

將引數的二進位制資料表示為無符號十六進位制整數。如果使用 "H",則 A 到 F 的數字將顯示為大寫。注意: 對於任何非正整數資料,這並不代表其真實值。

o

八進位制整數

將整數表示為八進位制整數。 "#" 標誌將用 "0" 作為字首。

x 或 X

十六進位制整數

將整數表示為十六進位制整數。 "#" 標誌將用 "0x" 作為字首。如果使用 "X",則數字 A 到 F 以及字母 X 將以大寫形式顯示。

e 或 E

科學計數法

以科學計數法表示浮點數。如果使用 "E",則表示中的字母 "E" 將是大寫。 "#" 標誌將強制顯示小數點,即使沒有小數位數。

f

浮點數

表示一個浮點數。 "#" 標誌將強制顯示小數點,即使沒有小數位數。

g 或 G

通用數字

顯示浮點數的 f 和 e 或 E 之間最短的表示形式。

a 或 A

十六進位制浮點數

以十六進位制數字顯示浮點數的內部表示。

t 或 T

時間和日期

顯示格式化的日期或時間。t 或 T 後面必須跟一個額外的字元,指示日期或時間的格式。如果使用 "T",則日期或時間中的文字部分(如 "JANUARY")將是大寫。以下字元可用於日期和時間格式化

H - 小時(24 小時制)的表示(00 到 23)

I - 小時(12 小時制)(01 到 12)

k - 小時(24 小時制)(0 到 23)

l(小寫 'L')- 小時(12 小時制)(1 到 12)

M - 分鐘(帶前導零)(00 到 59)

S - 秒(帶前導零)(00 到 59)(閏秒可能出現 60)

L - 毫秒(帶前導零)(000 到 999)

N - 納秒(帶前導零)(000000000 到 999999999)

p - "am", "pm", "AM" 或 "PM",表示上午或下午

z - 與格林尼治標準時間(GMT)的差值(示例:-0800)

Z - 時區縮寫(示例:EST, MDT)

s - 自 Unix Epoch(1970 年 1 月 1 日 00:00:00 GMT)以來的秒數

Q - 自 Unix Epoch(1970 年 1 月 1 日 00:00:00 GMT)以來的毫秒數

B - 月份的全文字表示(一月到十二月)

b 或 h - 月份的短文字表示(三個字母)

A - 一週中某天的全文字表示(示例:Monday)

a - 一週中某天的短文字表示(示例:Mon)

C - 年份的前兩位數字(對於 1970 年,顯示 "19")

Y - 四位數的年份表示

y - 兩位數的年份表示

j - 一年中的第幾天(帶前導零)(001 到 366)

m - 月份的數字表示(01 到 12)

d - 月中的第幾天(01 到 31)

e - 月中的第幾天(不帶前導零)(1 到 31)

R - 24 小時制的時間(示例:21:30)

T - 帶秒的 24 小時制的時間(示例:21:30:02)

r - 帶秒的 12 小時制的時間(示例:09:30:02 PM)("AM" 和 "PM" 始終是大寫)

D - 日期表示形式(月/日/年)(示例:12/17/23)

F - 日期表示形式(年-月-日)(示例:2023-12-17)

c - 完整日期和時間(示例:Thu Mar 28 10:51:00 EDT 2024)

語法

System.out.printf(locale, formatString, args)

引數值

引數

描述

locale

可選。一個用於確定某些格式的區域設定,例如用於小數點和分組分隔符的字元。

formatString

必需。一個包含附加引數佔位符的字串,指示如何格式化它們

args

可選。任意數量的附加引數傳遞給方法,它們的值可以在 *formatString* 中進行格式化和顯示。

技術詳情

返回

一個 PrintStream 物件。

丟擲

IllegalFormatException - 如果格式字串包含無效的佔位符,或者佔位符與引數的資料型別不相容。

Java 版本

1.5

更多示例

示例

列印包含字串和整數的格式化文字

System.out.printf("Hello %s! One kilobyte is %,d bytes.", "World", 1024);

自己動手試一試 »

示例

以不同方式格式化浮點數

// Default

System.out.printf("%f%n", 123456.78);

// Two decimal digits

System.out.printf("%.2f%n", 123456.78);

// No decimal digits

System.out.printf("%.0f%n", 123456.78);

// No decimal digits but keep the decimal point

System.out.printf("%#.0f%n", 123456.78);

// Group digits

System.out.printf("%,.2f%n", 123456.78);

// Scientific notation with two digits of precision

System.out.printf("%.2e", 123456.78);

自己動手試一試 »

示例

使用所有元件的佔位符

System.out.printf("%2$,3.2f %1$s", "meters", 1260.5052);

這是佔位符 %2$,3.2f 各部分的工作原理

2$ 表示使用第二個引數的值

, 表示數字應分組(通常按千位)

3 表示資料的表示形式應至少為 3 個字元長

.2 表示小數點後應有兩位數字

f 表示資料被表示為浮點數

自己動手試一試 »

示例

使用不同順序的引數

System.out.printf("%3$c %2$c %1$c", 'a', 'b', 'c');

自己動手試一試 »

示例

從 Unix 時間戳格式化日期

long date = 1711638903488L; // Unix timestamp (number of milliseconds since January 1, 1970)

// Time

System.out.printf("%tl:%

// Month and day

System.out.printf("%tB %

// Full date representation

System.out.printf("%tc%n", date);

自己動手試一試 »

示例

根據 Unicode 程式碼點表示字元

// Represent characters from their unicode code points

System.out.printf("%c%c%c%c%c%n", 72, 101, 108, 108, 111);

// Force unicode characters to uppercase

System.out.printf("%C%C%C%C%C", 72, 101, 108, 108, 111);

自己動手試一試 »

❮ 輸出方法

★ +1

W3schools 學習路徑

跟蹤您的進度 - 免費!

登入 註冊

相关推荐

【剽悍牛人进化营社交模块】结交人脉的正确方式
去哪里买兔子

去哪里买兔子

01-28 💫 6558
节奏大师新版下载

节奏大师新版下载

01-03 💫 5114
3376凤凰棋牌官方版正式版本棋牌游戏

本文标签