| 方法 | 換行 | 格式化 | 典型用途 |
|---|---|---|---|
| print() | 否,光標停末尾 | 否 | 拼接輸出、進度提示 |
| println() | 是,光標移下行行首 | 否 | 單行日誌、結果輸出 |
| printf() | 否(需手動 \n) | 是,C 風格佔位符 | 對齊表格、精度控制、複雜格式 |
ln = line 去元音簡寫,易記憶。
System.out.printf("格式化字串", 參數列表);
| 佔位符 | 對應類型 | 說明 |
|---|---|---|
| %d | 整數 | 十進制 |
| %o | 整數 | 八進制 |
| %x / %X | 整數 | 十六進制 (小寫/大寫) |
| %f | 浮點數 | 十進制,默認 6 位小數 |
| %.2f | 浮點數 | 保留 2 位小數 |
| %e / %E | 浮點數 | 科學記數法 |
| %g / %G | 浮點數 | 自動選 %f 或 %e,較短者 |
| %s | 字串 | toString() 結果 |
| %c | 字符 | 單字符 |
| %b | 布爾 | true/false |
| %% | 字面量 | 輸出 % 本身 |
%5d // 寬度 5,右對齊,不足左補空格
%-5d // 寬度 5,左對齊
%05d // 寬度 5,右對齊,不足左補 0
%5.2f // 總寬 5 含小數點,小數 2 位
int i = 4;
double j = 5.0;
System.out.print("print: i=" + i); // 無換行
System.out.println(" println: i=" + i); // 換行
System.out.printf("printf: i=%d, j=%.2f%n", i, j); // 格式化 + %n 換行
輸出:
print: i=4 println: i=4 printf: i=4, j=5.00
// 動態寬度
System.out.printf("%" + width + "d", num);
// 參數索引(複用參數、調整順序)
System.out.printf("%1$d %1$05d %2$s", 42, "hello");
// 輸出: 42 00042 hello
IllegalFormatConversionException%f 默認 6 位小數,財務場景務必用 %.2f 或 BigDecimal%n,而非硬編碼 \nSystem.out.format() 等同於 printf()