下面这个例子演示了如何在String.format方法中显示一个百分号。

像下面这样直接调用String.format("%d%", 100)来显示百分号,将会抛出java.util.UnknownFormatConversionException异常:

JavaStringFormat1.java
package com.mkyong;
public class JavaStringFormat1 {
public static void main(String[] args) {
String result = String.format("%d%", 100);
System.out.println(result);
}
}

输出

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '%'
at java.base/java.util.Formatter.checkText(Formatter.java:2732)
at java.base/java.util.Formatter.parse(Formatter.java:2718)
at java.base/java.util.Formatter.format(Formatter.java:2655)
at java.base/java.util.Formatter.format(Formatter.java:2609)
at java.base/java.lang.String.format(String.java:2897)

解决方法

如果要想避免java.util.UnknownFormatConversionException异常,我们需要使用%%来表示一个百分号,例如:String.format("%d%%", 100)。

JavaStringFormat2.java
package com.mkyong;
public class JavaStringFormat2 {
public static void main(String[] args) {
String result = String.format("%d%%", 100); // 100%
System.out.println(result);
}
}
输出
100%