String.format()的用法

if (camera == null) {
        log.error(String.format("摄像头不存在:%s",captureRecord.getChannel_ip()));
        return;
   }

String.format的用法

String.format()字符串常规类型格式化的两种重载方式

  • format(String format, Object… args)   将args用format的格式输出
  • format(Locale locale, String format, Object… args) 使用指定的语言环境,将args用format的格式输出

常用类型

转换符详细说明示例
%s 字符串类型 “喜欢请收藏”
%c 字符类型 ‘m’
%b 布尔类型 true
%d 整数类型(十进制) 88
%x 整数类型(十六进制) FF
%o 整数类型(八进制) 77
%f 浮点类型 8.888
%a 十六进制浮点类型 FF.35AE
%e 指数类型 9.38e+5
%g 通用浮点类型(f和e类型中较短的) 不举例(基本用不到)
%h 散列码 不举例(基本用不到)
%% 百分比类型 %(%特殊字符%%才能显示%)
%n 换行符 不举例(基本用不到)
%tx 日期与时间类型(x代表不同的日期与时间转换符) 不举例(基本用不到)

举例子

 1 String str=null;
 2 str=String.format("Hi,%s", "小超");
 3 System.out.println(str);
 4 str=String.format("Hi,%s %s %s", "小超","是个","大帅哥");
 5 System.out.println(str);
 6 System.out.printf("字母c的大写是:%c %n", 'C');
 7 System.out.printf("布尔结果是:%b %n", "小超".equal("帅哥"));
 8 System.out.printf("100的一半是:%d %n", 100/2);
 9 System.out.printf("100的16进制数是:%x %n", 100);
10 System.out.printf("100的8进制数是:%o %n", 100);
11 System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);
12 System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);
13 System.out.printf("上面价格的指数表示:%e %n", 50*0.85);
14 System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);
15 System.out.printf("上面的折扣是%d%% %n", 85);
16 System.out.printf("字母A的散列码是:%h %n", 'A');

结果

 1 Hi,小超 
 2 Hi,小超 是个 大帅哥  
 3 字母c的大写是:C   
 4 布尔的结果是:false   
 5 100的一半是:50   
 6 100的16进制数是:64   
 7 100的8进制数是:144   
 8 50元的书打8.5折扣是:42.500000 9 上面价格的16进制数是:0x1.54p5   
10 上面价格的指数表示:4.250000e+01   
11 上面价格的指数和浮点数结果的长度较短的是:42.5000   
12 上面的折扣是85%   
13 字母A的散列码是:41   

其他信息请参考这篇文章

https://blog.csdn.net/anita9999/article/details/82346552

原文地址:https://www.cnblogs.com/rachelgarden/p/14981686.html