美文网首页
String.format正常输出%

String.format正常输出%

作者: 清风朗月念年少 | 来源:发表于2017-03-29 12:00 被阅读757次

    有时候使用String.format格式化数据希望得到如下结果:

    String str = String.format("下载完成%s%", "50.25");
    System.out.printf(str);
    

    这样干的结果竟然是报错啦

    Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '%'
        at java.util.Formatter.checkText(Formatter.java:2547)
        at java.util.Formatter.parse(Formatter.java:2533)
        at java.util.Formatter.format(Formatter.java:2469)
    

    其实原因很简单,%在此处是特殊字符,需要转义的,改成如下写法就OK了。

    String str = String.format("下载完成%s%%", "50.25");
    System.out.printf(str);
    

    当然这只是其中一种解决办法而已,我们还可以通过其他技巧来处理。比如

    String str = String.format("下载完成%1$s%2$s", "50.35", "%");
    System.out.println(str);
    

    顺便整理一下转换符实现不同数据类型到字符串,方便查阅

    转换符 说明 示例
    %s 字符串类型 github
    %c 字符类型 c
    %b 布尔类型 true
    %d 整数类型(十进制) 1024
    %x 整数类型(十六进制) FF
    %o 整数类型(八进制) 77
    %f 浮点类型 99.66
    %a 十六进制浮点类型 FF.35AE
    %e 指数类型 9.38e+5
    %g 通用浮点类型(f和e类型中较短的) ---
    %h 散列码 ---
    %% 百分比类型 ---
    %n 换行符 ---
    %tx 日期与时间类型(x代表不同的日期与时间转换符) ---

    相关文章

      网友评论

          本文标题:String.format正常输出%

          本文链接:https://www.haomeiwen.com/subject/phyeottx.html