String系列之format方法

先简单介绍一下业务场景:公司新版本评审结束,需要按照一定规则拼接字符串(例如:20191215A001,...20191215A005);看着此需求,大家都想到了循环累加,但是后面如何拼接01,02这种字符而不是1,2...呢??答案肯定是数据格式化,于是乎注意力就集中在String类的格式化方法上了,所以下面正式进入本篇文章的主题。

针对上面的需求先简单解答:

String formatStr = String.format("%03d", 1);//输出结果:001

format()方法在java1.5版本开始新增,主要用于格式化字符串

下面对format()方法做主要介绍:

1、参数占位符

转换符 说明 实例
%s 字符串类型 "xiyuan"
%c 字符类型 'x'
%b 布尔类型 true
%d 整数类型(十进制) 99
%x 整数类型(十六进制) FF
%n 换行符
%% 百分号本身 %

 

 

 

 

 

 

 

 

 

 

代码示例:

public static void main(String[] args) {
String str=null;
str=String.format("Hi,%s", "溪源"); 
System.out.println(str); //Hi,溪源 str=String.format("Hi,%s:%s.%s", "溪源1","溪源2","溪源3"); System.out.println(str); //Hi, 溪源1:溪源2.溪源3 System.out.printf("字母a的大写是:%c %n", 'A');//字母a的大写是:A System.out.printf("3>7的结果是:%b %n", 3>7);//3>7的结果是:false System.out.printf("100的一半是:%d %n", 100/2);//100的一半是:50 System.out.printf("100的16进制数是:%x %n", 100);//100的16进制数是:64 }

 2、划重点啦~:字符串与整数之间格式化

// 补齐空格并右对齐:
String.format("%10s, world", "Hello");     // 输出 "     Hello, world"
String.format("%8d", 123);                 // 输出 "     123"

// 补齐空格并左对齐:
String.format("%-10s, world", "Hello");    // 输出 "Hello     , world"
String.format("%-8d", 123);                // 输出 "123     "

// 补齐 0 并对齐(仅对数字有效)
String.format("%08d", 123);                // 输出 "00000123"
String.format("%-08d", 123);               // 错误!不允许在右边补齐 0

// 输出最多N个字符
String.format("%.5s", "Hello, world");       // 输出 "Hello"
String.format("%.5s...", "Hello, world");    // 输出 "Hello..."
String.format("%10.5s...", "Hello, world");  // 输出 "     Hello..."

// 输出逗号分隔数字
String.format("%,d", 1234567);               // 输出 "1,234,567"

  3、日期格式化:

我们平时工作中最常使用的就是字符和日期之间的转化;

Y=年;m=月;d=日;H=时;M=分;S=秒;L=毫秒;A=星期几(名称);B=月份名称;

具体代码就不展示啦!

posted @ 2019-12-15 21:40  溪源  阅读(1665)  评论(0编辑  收藏  举报