String.format()的用法

format方法是String类里面的static方法,内部是通过Formatter实现的。

public static String format(String format, Object... args) {
    return new Formatter().format(format, args).toString();
}

参数1:是格式化表达式

参数2:是替换的目标

类型转换字符
d整数型(十进制)
cUnicode字符
bBoolean值
sString字符串
f浮点数(十进制)
e浮点数(科学计数)
x整数(十六进制)
h散列码(十六进制)
%字符“%”

格式化表达式:

%[argument_index$] [flags] [width] [.precision] conversion

flags:对齐方式,-是左对齐。

width:长度

.precision:最大长度

注:浮点数小数位默认是6位。

例如:

// 字符串处理 s
System.out.println("字符串s:" + String.format("%s", "String") + "|"); // 字符串s:String|
// 右对齐,不足10位前面补空格
System.out.println("字符串s:" + String.format("%10s", "String") + "|"); // 字符串s:    String|
 // 左对齐,不足10位后面补空格
System.out.println("字符串s:" + String.format("%-10s", "String") + "|"); // 字符串s:String    |
// 结果总长度是10,如果不足10后面补空格,如果目标字符串超过5则截取前5位
System.out.println("字符串s:" + String.format("%-10.5s", "String") + "|"); // 字符串s:Strin     |

// 整数型(十进制) d
System.out.println("整数型(十进制)d:" + String.format("%d", 5) + "|"); // 整数型(十进制)d:5|
// 右对齐,不足10位前面补空格
System.out.println("整数型(十进制)d:" + String.format("%10d", 5) + "|"); // 整数型(十进制)d:         5|
// 左对齐,不足10位前面补空格
System.out.println("整数型(十进制)d:" + String.format("%-10d", 5) + "|"); // 整数型(十进制)d:5         |
// 右对齐,不足10位前面补0,不能右对齐后面补0
System.out.println("整数型(十进制)d:" + String.format("%010d", 5555) + "|"); // 整数型(十进制)d:0000005555|

// 浮点数(十进制)f
// 默认小数位是6位
System.out.println("浮点数(十进制)f:" + String.format("%f", 9.1234567) + "|"); // 浮点数(十进制)f:9.123457|
 // 小数位6位,右对齐,长度不到10,前面补空格
System.out.println("浮点数(十进制)f:" + String.format("%10f", 9.1234567) + "|"); // 浮点数(十进制)f:  9.123457|
// 小数位6位,左对齐,长度不到10,前面补空格
System.out.println("浮点数(十进制)f:" + String.format("%-10f", 9.1234567) + "|"); // 浮点数(十进制)f:9.123457  |
// 小数位15位,小数位不足15位后面补0(只处理小数位) 
System.out.println("浮点数(十进制)f:" + String.format("%10.15f", 9.1234567) + "|"); // 浮点数(十进制)f:9.123456700000000|
// 小数位15位,小数位不足15位后面补0(只处理小数位)
System.out.println("浮点数(十进制)f:" + String.format("%-10.15f", 9.1234567) + "|"); // 浮点数(十进制)f:9.123456700000000| 
 // 小数位15位,小数位不足15位后面补0(只处理小数位)
System.out.println("浮点数(十进制)f:" + String.format("%010.15f", 9.1234567) + "|"); // 浮点数(十进制)f:9.123456700000000|

// Boolean值 b
System.out.println("Boolean值b:" + String.format("%b", false) + "|"); // Boolean值b:false|
// 布尔值长度不足10,前面补空格
System.out.println("Boolean值b:" + String.format("%10b", false) + "|"); // Boolean值b:     false|
// 输出字符串长度不变
System.out.println("Boolean值b:" + String.format("%3b", false) + "|"); // Boolean值b:false|
// 输出字符串长度是3
System.out.println("Boolean值b:" + String.format("%.3b", false) + "|"); // Boolean值b:fal|

// Unicode字符 c
System.out.println("Unicode字符c:" + String.format("%c", 'w') + "|"); // Unicode字符c:w|
// 长度不足10位,前面补空格
System.out.println("Unicode字符c:" + String.format("%10c", 'w') + "|"); // Unicode字符c:         w|
// 左对齐,长度不足10位后面补空格
System.out.println("Unicode字符c:" + String.format("%-10c", 'w') + "|"); // Unicode字符c:w         |

// 三列码 h
System.out.println("三列码h:" + String.format("%h", "12345") + "|"); // 三列码h:2ca0033|
// 右对齐,总长度位10,不足前面补空格
System.out.println("三列码h:" + String.format("%10h", "12345") + "|"); // 三列码h:   2ca0033|
// 左对齐,取前面三位,总长度不足10位后面补空格 
System.out.println("三列码h:" + String.format("%-10.3h", 12345) + "|"); // 三列码h:303       |

// 整数(十六进制) x
System.out.println("整数(十六进制)x:" + String.format("%x", 12345)); // 整数(十六进制)x:3039
// 转换位16 进制,总长度10位,不足10位前面补空格
System.out.println("整数(十六进制)x:" + String.format("%10x", 12345));  // 整数(十六进制)x:      3039
// 转换位16 进制,总长度10位,不足10位前面补0
System.out.println("整数(十六进制)x:" + String.format("%010x", 12345)); // 整数(十六进制)x:0000003039

未经本人允许,禁止转载!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值