String.format()の詳細な使い方
5544 ワード
問題
開発時には文字列の中の一部が可変的に必要です.例えば、Textviewの表示が必要です.XXXユーザーは上海の年齢21歳の性別男性から来ます. その中のXXXはユーザー名で、ユーザーによっても違います. 地域の上海は可変のstringデータです. 年齢21は可変のintデータです. 性別男は可変のstringデータです. このような状況に遭遇したら、あなた達はどう解決しますか?この文字列を定数クラスに保存しますか?いいえGoogleの開発モデルに従うべきです.
XML 便利だと思いますか? ノートにメモしておくつもりですが、友達に聞いたことがあります.完璧にしましょう.
String.format()文字列の一般的なタイプのフォーマットの2つのリロード方法 format(String format,Object...args)の新しい文字列は、ローカル言語環境を使用して、文字列フォーマットとパラメータ生成フォーマットの新しい文字列を作成します. フォーマット(Locale locale,String format,Object…args)は指定された言語環境を用いて文字列フォーマットとパラメータ生成フォーマットの文字列を作成します. 前の栗はキャラクタータイプと整数タイプのフォーマットがあります.下の例を挙げます.
変換子
詳細に説明する
例
%s
文字列の種類
好きです.どうぞ.
%c
文字の種類
‘m’
%b
ブールの種類
true
%d
整数タイプ(十進数)
88
%x
整数タイプ(16進数)
FF
%o
整数タイプ(8進数)
77
%f
浮動小数点のタイプ
8.888
%a
16進浮動小数点タイプ
FF.35 AE
%e
指数の種類
9.38 e+5
%g
汎用浮動小数点タイプ(fとeタイプのうち、比較的短い)
例を挙げないと、ほとんど使えません.
%h
ハッシュコード
例を挙げないと、ほとんど使えません.
%
パーセンテージのタイプ
%(%特殊文字%%のみ表示できます)
%n
行の区切り
例を挙げないと、ほとんど使えません.
%tx
日付と時間の種類(xは異なる日付と時間の変換子を表す)
例を挙げないと、ほとんど使えません.
分かりやすいように例をあげます. 出力結果 萼萼菗との取り合わせ変換符は、高級機能を実現する最初の例では$
標識
説明
例
結果
+
正または負の数に記号を追加します.
(「%+d」,15)
+15
0
数字の前で0を埋める(暗号化でよく使う)
(「%04 d」,99)
0099
スペース
整数の前に指定された数のスペースを追加します.
(「%4 d」、99)
99
を選択します.
を選択します.
(「%,f」,99999.99)
9,999,900
(
かっこで負の数を含む
(「%(f)-99.99)
(99.90000)
同前
浮動小数点であれば小数点を含み、16進数または8進数であれば0 xまたは0を加えます.
(「%xi x」,99)(「%〹o」,99)
0 x 63 0143
<>
前の変換子のパラメータを書式設定します.
(「%f和%<3.2f],99.45)
99.4500と99.45
d,%2's',99''abc')
99,abc
最初の例では、%txは日付変換子を表しています.ついでに日付変換子を列挙します.
標識
説明
例
c
全部の日付と時間情報を含みます.
60月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
実例を示してくれたら分かりやすいです. 出力結果 実は他にも面白い遊びがたくさんあります.私はよく使う興味のある友達を列挙します.自分でもっと調べてください.
開発時には文字列の中の一部が可変的に必要です.例えば、Textviewの表示が必要です.XXXユーザーは上海の年齢21歳の性別男性から来ます. その中のXXXはユーザー名で、ユーザーによっても違います. 地域の上海は可変のstringデータです. 年齢21は可変のintデータです. 性別男は可変のstringデータです. このような状況に遭遇したら、あなた達はどう解決しますか?この文字列を定数クラスに保存しますか?いいえGoogleの開発モデルに従うべきです.
XML
%2$s %3$d %4$s
JAVAString userName="XXX";
String userProvince=" ";
int userAge=21;
String userSex=" ";
String string=getResources().getString(R.string.user_info);
String userInfo=String.format(string,userName,userProvince,userAge,userSex);
String.format()文字列の一般的なタイプのフォーマットの2つのリロード方法
変換子
詳細に説明する
例
%s
文字列の種類
好きです.どうぞ.
%c
文字の種類
‘m’
%b
ブールの種類
true
%d
整数タイプ(十進数)
88
%x
整数タイプ(16進数)
FF
%o
整数タイプ(8進数)
77
%f
浮動小数点のタイプ
8.888
%a
16進浮動小数点タイプ
FF.35 AE
%e
指数の種類
9.38 e+5
%g
汎用浮動小数点タイプ(fとeタイプのうち、比較的短い)
例を挙げないと、ほとんど使えません.
%h
ハッシュコード
例を挙げないと、ほとんど使えません.
%
パーセンテージのタイプ
%(%特殊文字%%のみ表示できます)
%n
行の区切り
例を挙げないと、ほとんど使えません.
%tx
日付と時間の種類(xは異なる日付と時間の変換子を表す)
例を挙げないと、ほとんど使えません.
分かりやすいように例をあげます.
String str=null;
str=String.format("Hi,%s", " ");
System.out.println(str);
str=String.format("Hi,%s %s %s", " "," "," ");
System.out.println(str);
System.out.printf(" c :%c %n", 'C');
System.out.printf(" :%b %n", " ".equal(" "));
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');
Hi,
Hi,
c :C
: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
0
数字の前で0を埋める(暗号化でよく使う)
(「%04 d」,99)
0099
スペース
整数の前に指定された数のスペースを追加します.
(「%4 d」、99)
99
を選択します.
を選択します.
(「%,f」,99999.99)
9,999,900
(
かっこで負の数を含む
(「%(f)-99.99)
(99.90000)
同前
浮動小数点であれば小数点を含み、16進数または8進数であれば0 xまたは0を加えます.
(「%xi x」,99)(「%〹o」,99)
0 x 63 0143
<>
前の変換子のパラメータを書式設定します.
(「%f和%<3.2f],99.45)
99.4500と99.45
d,%2's',99''abc')
99,abc
最初の例では、%txは日付変換子を表しています.ついでに日付変換子を列挙します.
標識
説明
例
c
全部の日付と時間情報を含みます.
60月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
実例を示してくれたら分かりやすいです.
Date date=new Date();
//c
System.out.printf(" :%tc%n",date);
//f
System.out.printf(" - - :%tF%n",date);
//d
System.out.printf(" / / :%tD%n",date);
//r
System.out.printf("HH:MM:SS PM (12 ):%tr%n",date);
//t
System.out.printf("HH:MM:SS (24 ):%tT%n",date);
//R
System.out.printf("HH:MM (24 ):%tR",date);
: 21 22:43:36 CST 2016
- - :2016-09-21
/ / :16/10/21
HH:MM:SS PM (12 ):10:43:36
HH:MM:SS (24 ):22:43:36
HH:MM (24 ):22:43