Java String.format()方法中使用百分号’%’

作者 | 2020年4月20日

下面这个例子演示了如何在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%

发表评论

电子邮件地址不会被公开。 必填项已用*标注