字符串被廣泛應用於Java編程之中,在Java中字符串是屬於對象的,Java提供了String類的創建和操作字符串函數。輸出格式化數字可以使用printf()和format()方法。String類使用靜態方法format()返回一個String對象而不是PrintStream對象。String類的靜態方法format()能用來創建可複用的格式化字符串,而不僅僅是用於一次打印輸出,下面為大傢俱體講解一下使用String.format()格式化字符串。
使用指定格式字符串格式化字符串參數,具體Java源碼如下:
public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}
使用指定的語言環境(本地語言環境),格式字符串返回一個格式化字符串和參數,具體Java源碼如下:
public static String format(Locale l, String format, Object ... args) {
return new Formatter(l).format(format, args).toString();
}
1)不同轉換符實現不同數據類型到字符串的轉換,具體如下所示:
轉換符說明示例
%s字符串類型"mingrisoft"
%c字符類型'm'
%b布爾類型true
%d整數類型(十進制)99
%x整數類型(十六進制)FF
%o整數類型(八進制)77
%f浮點類型99.99
%a十六進制浮點類型FF.35AE
%e指數類型9.38e+5
%g通用浮點類型(f和e類型中較短的)
%h散列碼
%%百分比類型%
%n換行符
%tx日期與時間類型(x代表不同的日期與時間轉換符
2)日期事件字符串格式化,具體如下所示:
轉換符 說明 示例
c包括全部日期和時間信息星期六 十月 8 13:21:20 CST 2017
F“年-月-日”格式2017-04-10
D“月/日/年”格式10/04/10
r“HH:MM:SS PM”格式(12時制)13:21:20 下午
T“HH:MM:SS”格式(24時制)13:21:24
R“HH:MM”格式(24時制)13:21
3)時間的字符串格式化,具體如下所示:
轉換符 說明 示例
H2位數字24時制的小時(不足2位前面補0)15
I2位數字12時制的小時(不足2位前面補0)03
k2位數字24時制的小時(前面不補0)15
l2位數字12時制的小時(前面不補0)3
M2位數字的分鐘(不足2位前面補0) 03
S2位數字的秒(不足2位前面補0) 09
L3位數字的毫秒(不足3位前面補0) 015
N9位數字的毫秒數(不足9位前面補0) 562000000
p小寫字母的上午或下午標記 中:下午英:pm
z相對於GMT的RFC822時區的偏移量 +0800
Z時區縮寫字符串 CST
s1970-1-1 00:00:00 到現在所經過的秒數1193468128
Q1970-1-1 00:00:00 到現在所經過的毫秒數1193468128984
下面舉一些常用的案例,執行代碼如圖:
為了方便大家,具體代碼如下:
package com.test;
import java.util.Date;
import java.util.Locale;
/**
* 感興趣的小夥伴們,請關注路人宅
*/
public class Test {
public static void main(String args[]) {
String str = null;
str = String.format("Hi %s", "張三");
System.out.println(str);
str = String.format(Locale.ENGLISH,"Hi %s", "Zhang San");
System.out.println(str);
Date date = new Date();
System.out.printf("年-月-日格式:%tF%n",date); //printf()函數可以指定類型
str = String.format("%tH", date);
str += String.format(":%tM", date);
str += String.format(":%tS", date);
System.out.println("24時制的時分秒(不足2位前面補0):" + str);
}
}
輸出結果,如下所示圖: