我想通過一個字符串對象到Java中的System.out.printf(...),但我一直得到這個錯誤"java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0"
,這實際上並沒有對我很有意義。爲什麼我不能在java中將一個變量作爲格式字符串傳遞給System.out.printf(...)?
String format = "%" + (3 * n) + "s"; // n is an int defined somewhere above, could be 0
System.out.printf(format, "My string");
有誰知道這是否允許?
編輯瞭解詳情:
int n = 0;
String fm = "%" + (3 * level) + "s";
String realFm = "%0s";
System.out.println("fm = " + fm);
System.out.println("realfm = " + realFm);
System.out.println("equals? " + (fm.equals(realFm)));
System.out.printf(fm, " ");
下面是輸出:
fm = %0s
realfm = %0s
equals? true
java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0
感謝
你更新後的代碼仍然不顯示的例子其中n不是零。格式字符串'%0s'無效。 – 101100 2012-04-03 16:49:54