Android筆記:String.format()的詳細用法
阿新 • • 發佈:2018-12-14
一直對String.format不瞭解,而且也記不住那麼多,記錄一下以後查起來方便 1 佔位符 1.1 單個佔位符
String s = String.format("Hello %s,Welcome to my blog!", "jerry");
System.out.println(s);//Hello jerry,Welcome to my blog!12
1.2 多個佔位符 1.2.1 按順序
String s = String.format("Hello %s%s%s", "jerry-", "li", ",welcome!");1
1.2.2 按索引
String s = String. format("Hello %2$s%3$s%1$s", "li-", "heng-", "jie");1
2 對整數格式化
int n2 = 9999999;
System.out.printf("%+(,d %n", n2);
引數 | 含義 |
---|---|
- | 在最小寬度內左對齊,不可以與0標識一起使用 |
0 | 若內容長度不足最小寬度 |
+ | 結果總包含一個+或-號。 |
空格 | 正數前加空格 |
, | 只用與十進位制 |
( | 若結果為負數 |
3 對浮點數格式化
double n = 3.1415926;
String s = String.format("%f %n", num);
引數 | 含義 |
---|---|
- | 在最小寬度內左對齊 |
0 | 若內容長度不足最小寬度 |
+ | 結果總包含一個+或-號。 |
空格 | 正數前加空格 |
, | 只用與十進位制 |
( | 若結果為負數 |
4 對日期、時間格式化
對日期格式化的時候不能像對數字那樣多種格式對應一個數字, 分為日期格式化及時間格式化兩部分,如果希望格式化之後的格式是: 2017-01-13 12:05:30,需要先格式化日期,然後再格式化時間。 如下:
Date date = new Date();
String dateFormat = String.format("%tF %tT ", date, date);
System.out.println (dateFormat);
日期格式化:
引數 | 含義 |
---|---|
c | 星期六 十月 27 14:21:20 CST 2007 |
F | 2007-10-27 |
D | 10/27/07 |
r | 02:25:51 下午 |
T | 14:28:16 |
R | 14:28 |
b | 月份簡稱 |
B | 月份全稱 |
a | 星期簡稱 |
A | 星期全稱 |
C | 年前兩位(不足兩位補零) |
y | 年後兩位(不足兩位補零) |
m | 月份(不足兩位補零) |
d | 日期(不足兩位補零) |
e | 日期(不足兩位不補零 |
時間格式化:
引數 | 含義 |
---|---|
H | 24小時制的小時(不足兩位補零) |
k | 24小時制的小時(不足兩位不補零) |
I | 12小時制的小時(不足兩位補零) |
i | 12小時制的小時(不足兩位不補零) |
M | 分鐘(不足兩位補零) |
S | 秒(不足兩位補零) |
L | 毫秒(不足三位補零) |
N | 毫秒(不足9位補零) |
p | 小寫字母的上午或下午標記,如中文為“下午”,英文為pm |
z | 相對於GMT的時區偏移量,如+0800 |
Z | 時區縮寫,如CST |
s | 自1970-1-1 00:00:00起經過的秒數 |
Q | 自1970-1-1 00:00:00起經過的豪秒 |