首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java printf 格式化字符串拼接錯誤:%d\n 與字符串拼接導致參數不匹配

     編輯:程式設計綜合問答

錯誤代碼

public A() {
    // 錯誤:將格式化字符串與普通字符串拼接
    System.out.printf("%d\n" + "無參函數調用了");
}

錯誤原因

printf(String format, Object... args) 的第一個參數是格式化字符串,包含佔位符(如 %d)。"%d\n" + "無參函數調用了" 拼接後變為 "%d\n無參函數調用了",仍含 %d 佔位符,但調用時未傳入對應的 int 參數,導致 IllegalFormatConversionException 或 MissingFormatArgumentException。

正確寫法

方式一:純文本輸出用 print/println

System.out.println("無參函數調用了");

方式二:確實需要格式化時,佔位符與參數對應

System.out.printf("數值:%d,提示:無參函數調用了%n", 42);

方式三:字符串拼接後用 print

System.out.print("%d\n" + "無參函數調用了"); // 輸出字面文本 %d\n無參函數調用了

知識點總結

  • printf = print + format,首參數必須是格式字符串,佔位符數量與後續參數嚴格對應。
  • 單純文本拼接請用 + 配合 print/println 或 String.format。
  • Java 不同於 C 的 printf,格式字符串在編譯期不檢查,運行期才拋異常。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved