String.format()の使い方

8207 ワード

String.format()の使い方
//     ,   
String s = String.format("Hello %s%s%s", "one", "two", "three");

てんかんし
はっきり言う
例を示す
%s
文字列タイプ
"mingrisoft"
%c
文字の種類
'm'
%b
ブール型
true
%d
整数タイプ(10進数)
99
%x
整数タイプ(16進数)
FF
%o
整数タイプ(8進数)
77
%f
浮動小数点の種類
99.99
%a
16進浮動小数点タイプ
FF.35AE
%e
指数タイプ
9.38e+5
%g
汎用浮動小数点タイプ(fおよびeタイプで短い)
 
%h
ハッシュコード
 
%%
パーセントタイプ

%n
改行
 
%tx
日付と時間タイプ(xは異なる日付と時間変換子を表す
 
 
public static void main(String[] args) {
    String str=null;
    str=String.format("Hi,%s", "  ");          //       
    System.out.println(str);                             //        str   
    System.out.printf("  a    :%c %n", 'A');
    System.out.printf("3>7    :%b %n", 3>7);
    System.out.printf("100    :%d %n", 100/2);
    System.out.printf("100 16    :%x %n", 100);
    System.out.printf("100 8    :%o %n", 100);
    System.out.printf("50    8.5   :%f  %n", 50*0.85);
    System.out.printf("     16    :%a %n", 50*0.85);
    System.out.printf("         :%e %n", 50*0.85);
    System.out.printf("                    :%g %n", 50*0.85);
    System.out.printf("      %d%% %n", 85);
    System.out.printf("  A     :%h %n", 'A');
}

(2)  StrConversion ,            :
Hi,  
  a    :A
3>7    :false
100    :50
100 16    :64
100 8    :144
50    8.5   :42.500000  
     16    :0x1.54p5
         :4.250000e+01
                    :42.5000
      85%
  A     :41

変換子のマークを合わせる
ひょうじ
はっきり言う
例を示す
実を結ぶ
+
正または負の記号を追加
("%+d",15)
+15

左揃え
("%-5d",15)
|15   |
0
数字の前に0を補う
("%04d", 99)
0099
スペース
指定した数のスペースを整数の前に追加
("% 4d", 99)
|  99|
,
「,」で数値をグループ化
("%,f", 9999.99)
9,999.990000
(
かっこで負数を含める
("%(f", -99.99)
(99.990000)
#
浮動小数点数の場合は小数点、16進数または8進数の場合は0 xまたは0を追加
("%#x", 99) ("%#o", 99)
0x63 0143
前の変換子で説明したパラメータのフォーマット
("%fおよび%<3.2 f",99.45)
99.45,000および99.45
$
フォーマットされたパラメータインデックス
("%1$d,%2$s", 99,"abc")
99,abc
 
public static void main(String[] args) {
    String str=null;
    str=String.format("    $   :%1$d,%2$s", 99,"abc");           //       
    System.out.println(str);                                                                                     //        
    System.out.printf("        :%+d %d%n", 99,-99);
    System.out.printf("      :%03d%n", 7);
    System.out.printf("Tab     :% 8d%n", 7);
    System.out.printf("        :%,d%n", 9989997);
    System.out.printf("       :%2.2f %n", 49.8);
}
(2)  StrFormat ,                。
    $   :99,abc
        :+99 -99
      :007
Tab     :       7
        :9,989,997
       :49.80 

日付クラス
てんかんし
はっきり言う
例を示す
c
すべての日付と時刻情報を含める
土曜日27 14:21:20 CST 2007
F
年-月-日
2007-10-27
D
月/日/年
10/27/07
r
「HH:MM:SS PM」形式(12時制)
02:25:51午後
T
「HH:MM:SS」形式(24時制)
14:28:16
R
「HH:MM」形式(24時制)
14:28
public static void main(String[] args) {
    Date date=new Date();                                                                    //       
    System.out.printf("         :%tc%n",date);                //           
    System.out.printf(" - -   :%tF%n",date);
    System.out.printf(" / /   :%tD%n",date);
    System.out.printf("HH:MM:SS PM  (12  ):%tr%n",date);
    System.out.printf("HH:MM:SS  (24  ):%tT%n",date);
    System.out.printf("HH:MM  (24  ):%tR",date);
}

(2)     ,                     。      :
         :     28 13:53:24 CST 2007
 - -   :2007-10-28
 / /   :10/28/07
HH:MM:SS PM  (12  ):01:53:24   
HH:MM:SS  (24  ):13:53:24
HH:MM  (24  ):13:53

日付書式変換子
てんかんし
はっきり言う
例を示す
b又はh
月の略称
日:十月英:Oct
B
月のフルネーム
日:十月英:October
a
曜日の略称
日:土曜日英:Sat
A
曜日のフルネーム
日:土曜日英:Saturday
C
年の上位2桁(上位2桁未満)
20
y
年の後2桁の数字(2桁未満前に0を補う)
07
Y
4桁未満の年
2007
j
1年の日数(年の日付)
300
m
2桁の月(2桁前に0を補う未満)
10
d
2桁の数字の日(2桁未満前に0を補う)
27
e
月の日(前は0を補わない)
5
public static void main(String[] args) {
    Date date=new Date();                                                                             //       
    String str=String.format(Locale.US,"      :%tb",date);      //         
    System.out.println(str);                                                                              //        
    System.out.printf("      :%tb%n",date);
    str=String.format(Locale.US,"      :%tB",date);
    System.out.println(str);
    System.out.printf("      :%tB%n",date);
    str=String.format(Locale.US,"       :%ta",date);
    System.out.println(str);
    System.out.printf("       :%tA%n",date);
    System.out.printf("       (       0):%tC%n",date);
    System.out.printf("       (       0):%ty%n",date);
    System.out.printf("      (      ):%tj%n",date);
    System.out.printf("       (       0):%tm%n",date);
    System.out.printf("      (       0):%td%n",date);
    System.out.printf("    (    0):%te",date);
}

(2)     ,                  。      :
      :Oct
      :  
      :October
      :  
       :Sun
       :   
       (       0):20
       (       0):07
      (      ):301
       (       0):10
      (       0):28
    (    0):28

 
タイムフォーマット変換子
てんかんし
はっきり言う
例を示す
H
2桁数字24時制の時間(2桁未満前に0を補う)
15
I
2桁数字12時制の時間(2桁未満前に0を補う)
03
k
2桁数字24時制の時間(前は0を補わない)
15
l
2桁数字12時制の時間(前は0を補わない)
3
M
2桁分(2桁未満前に0を補う)
03
S
2桁の秒(2桁未満前に0を足します)
09
L
3桁のミリ秒(3桁未満の前に0を補う)
015
N
9桁のミリ秒数(9桁未満前に0を補う)
562000000
p
小文字の午前または午後のマーク
日:午後英:pm
z
GMTに対するRFC 822タイムゾーンのずれ量
+0800
Z
タイムゾーンの省略文字列
CST
続表
てんかんし
はっきり言う
例を示す
s
1970-1-1 00:00:00から現在までの経過秒数
1193468128
Q
1970-1-1 00:00:00から現在までのミリ秒数
1193468128984
public static void main(String[] args) {
    Date date=new Date();                               //       
    System.out.printf("2   24     (  2    0):%tH%n",date);
    System.out.printf("2   12     (  2    0):%tI%n",date);
    System.out.printf("2   24     (    0):%tk%n",date);
    System.out.printf("2   12     (    0):%tl%n",date);
    System.out.printf("2      (  2    0):%tM%n",date);
    System.out.printf("2     (  2    0):%tS%n",date);
    System.out.printf("3      (  3    0):%tL%n",date);
    System.out.printf("9       (  9    0):%tN%n",date);
    String str=String.format(Locale.US,"            ( ):%tp",date);
    System.out.println(str);                          //        str   
    System.out.printf ("            ( ):%tp%n",date);
    System.out.printf("   GMT RFC822      :%tz%n",date);
    System.out.printf("       :%tZ%n",date);
    System.out.printf("1970-1-1 00:00:00          :%ts%n",date);
    System.out.printf("1970-1-1 00:00:00           :%tQ%n",date);
}

(2)    ,           :
2   24     (  2    0):15
2   12     (  2    0):03
2   24     (    0):15
2   12     (    0):3
2      (  2    0):24
2     (  2    0):56
3      (  3    0):828
9       (  9    0):828000000
            ( ):pm
            ( ):  
   GMT RFC822      :+0800
       :CST
1970-1-1 00:00:00         :1193556296
1970-1-1 00:00:00          :1193556296828