この記事では、次のように、Java String formatting-string.format()の使用を紹介します。
通常のタイプの形式
文字列クラスの形式()メソッドは、フォーマットされた文字列を作成し、複数の文字列オブジェクトを連結するために使用されます。 C言語に精通している学生は、C言語のsprintf()方法を覚えておく必要があり、2つの間には類似点があります。 Format()メソッドには、2つの過負荷フォームがあります。
Format(String Format、Object ... args)new Stringはローカルロケールを使用して、文字列形式とパラメーターを作成してフォーマットされた新しい文字列を生成します。
フォーマット(Locale Locale、String Format、Object ... args)指定されたロケールを使用して、文字列形式とパラメーターを作成してフォーマットされた文字列を生成します。
図に示すように、さまざまなコンバーターを表示して、さまざまなデータ型の文字列への変換を実装します。
コンバータ | 説明します | 例 |
%s | 文字列タイプ | 「Mingrisoft」 |
%c | 文字タイプ | 'm' |
%b | ブールタイプ | 真実 |
%d | 整数タイプ(小数) | 99 |
%x | 整数タイプ(16進数) | ff |
%o | 整数タイプ(オクタル) | 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 = stringformat( "hi、%s"、 "wang li"); SystemOutPrintln(str); str = stringformat( "hi、%s:%s%s"、 "wang nan"、 "wang li"、 "wang zhang"); SystemOutPrintln(str); SystemOutPrintf( "大文字a is:%c%n"、 'a'); SystemOutPrintf( "3> 7の結果は:%B%n"、3> 7); SystemOutPrintf( "100の半分は:%d%n"、100/2); SystemOutPrintf( "100's Hexadecimal数は:%x%n"、100); systemoutprintf( "100's Angular nums is:%o%n"、100); SystemoutPrintf( "50 Yuan book is 5 discist:%f%n"上記の価格は次のとおりです。%a%n "、50*85); SystemOutPrintf("上記の価格のインデックスは:%E%n "、50*85); SystemOutPrintf("上記の価格のインデックスの短い長さと浮動小数点数の結果が次のとおりです。文字aのコードは:%h%n "、 'a');}出力結果
こんにちは、王李こんにちは、王ナン:ワン・リー・ワン・チャンの手紙Aは大文字です:A 3> 7結果は次のとおりです。上記の割引は85%ですレターAのハッシュコードは次のとおりです。
変換シンボルとペアになったロゴを図に示します。
| ロゴ | 説明します | 例 | 結果 |
| + | 正または負の数のシンボルを追加します | ( "%+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進またはengthの場合、それは0xまたは0を追加します | ( "%#x"、99) | ( "%#o"、99) |
| < | 以前のコンバーターで説明されているパラメーターをフォーマットします | ( "%fおよび%<3.2f"、99.45) | 99.450000および99.45 |
| $ | フォーマットされたパラメーターインデックス | ( "%1 $ d、%2 $ s"、99、 "ABC") | 99、ABC |
テストケース
public static void main(string [] args){string str = null; // $ use str = stringformat( "format parameter $:%1 $ d、%2 $ s"、99、 "abc"); SystemOutPrintln(str); //+systemoutprintf( "正と負の数値を示すシンボル:%+dおよび%d%n"、99、-99); //完全なuse systemoutprintf( "最も素晴らしい数字は:%03d%n"、7); // SystemOutPrintfを使用します( "TABキーの効果は次のとおりです。%8d%n"、7); // SystemOutPrintf( "整数グループの効果は:%、d%n"、9989997); //スペースと小数点番号SystemEmoutPrintf( "本の価格は:%5F Yuan%n"、8); }出力結果
フォーマットパラメーターの使用$:99、正と負の数値を表示するABCシンボル:+99および-99最も素晴らしい数字は次のとおりです。
日付とイベント文字列のフォーマット
プログラムインターフェイスに表示するには、多くの場合、日付が必要ですが、ディスプレイの形式は不十分です。理想的な日付と時刻の形式を取得するために、さまざまなアルゴリズムを実行するには、大量のコードが必要です。文字列形式には、詳細ではない%Txコンバーターもあり、日付と時間のフォーマットに特別に使用されます。 x%Txコンバーターのxは、日付と時刻の形式を処理する追加のコンバーターを表し、それらの組み合わせは日付と時刻を複数の形式にフォーマットできます。
図に示すように、日付と時刻の組み合わせの一般的な形式。
| コンバータ | 説明します | 例 |
| c | すべての日付と時刻情報が含まれています | 10月27日土曜日14:21:20 CST 2007 |
| f | 「年月」形式 | 2007-10-27 |
| d | 「月/日/年」形式 | 10/27/07 |
| r | 「HH:MM:SS PM」形式(12時間システム) | 02:25:51 PM |
| t | 「HH:MM:SS」形式(24時間システム) | 14:28:16 |
| r | 「HH:MM」形式(24時間システム) | 14:28 |
テストケース
public static void main(string [] args){date date = new date(); // c SystemUtPrintf( "すべての日付と時刻情報:%tc%n"、日付)を使用します。 // f systemutprintf( "年〜数日間形式:%tf%n"、date)を使用します。 // d systemutprintf( "月/日/年形式:%td%n"、date)を使用します。 // r systemutprintf( "hh:mm:ss pm形式(12時間システム):%tt%n"、date); // t systemutprintf( "hh:mm:ss形式(24時間システム):%tt%n"、日付); // r systemutprintf( "hh:mm形式(24時間形式):%tr"、date); }出力結果
すべての日付情報:9月10日月曜日10:43:36 CST 2012-月の形式:2012-09-10月/日/年形式:09/10/12 HH:MM:SS PM形式(12 O'Clock):10:43:36朝HH:MM:SS形式(24 O'Clock):10:43:36HH:MM:MM:MM:MM:MM:MM:MM: 10:43
日付形式を定義するコンバーターは、日付が指定されたコンバーターを介して新しい文字列を生成する可能性があります。これらの日付コンバーターは図に示されています。
public static void main(string [] args){date date = new date(); // bの使用、月の略語はstring str = stringformat(localeus、 "英語月略語:%tb"、date)です。 SystemOutPrintln(str); SystemOutPrintf( "現地月略語:%Tb%n"、日付); // bの使用、月のフルネームstr = stringformat(localeus、 "英語月氏名:%tb"、date); SystemOutPrintln(str); SystemOutPrintf( "現地月額氏名:%TB%N"、日付); // a、週の使用は、str = stringformat(localeus、 "英語週の略語:%ta"、date)として省略されます。 SystemOutPrintln(str); // A、WeekのフルネームSystemOutPrintfの使用( "Local Weekの略語:%ta%n"、date); // Cの使用、2桁SystemOutPrintf( "年の最初の2桁(最初の2桁未満):%tc%n」、日付); // yの使用、2桁SystemOutPrintf( "年の最後の2桁(最初の2桁未満):%ty%n"、日付); // j、1年の日数SystemUtPrintf( "1年の日(つまり、年の日):%tj%n"、日付); // m、月SystemUtPrintf( "2桁の月(0の前に2桁未満):%tm%n"、日付); // d、日(2桁、ゼロを補うのに十分ではありません)SystemUtPrintf( "2桁の日(0の前に2桁未満):%TD%n"、日付); // e、日(0の前に1桁)SystemUtPrintf( "2桁の日(0の前に2桁未満):%td%n"、日付); // E、日(0の前に1桁)SystemUtPrintf( "月の日(ゼロを補うのに十分ではない):%te"、date); }出力結果
英語月間の略語:9月の現地月月の略語:9月英語月氏名:9月のフルネーム:9月英語週の略語:地元の週の略語:週の最初の2桁(2桁未満、0を追加する前、0を追加):20年の最後の2桁(2桁未満、0を追加):12日間(1年以内):数字、追加0):09 2桁の日(2桁未満の前、0を追加):10月の日(2桁未満、0を追加):10
日付形式のコンバーターと比較して、時間形式のコンバーターはますます正確になります。時間、数分、秒、さらには時間ミリ秒などのユニットに時間をフォーマットできます。時間文字列をフォーマットするためのコンバーターを図に示します。
| コンバータ | 説明します | 例 |
| h | 2桁の数字24時間(2桁未満、最初の0が追加されます) | 15 |
| 私 | 2桁の番号12時間(0を追加する前に2桁未満) | 03 |
| k | 2桁の番号24時間時間(0は以前に追加されません) | 15 |
| l | 2桁の番号12時間(0は以前に追加されません) | 3 |
| m | 2桁の分(0を追加する前に2桁未満) | 03 |
| s | 2桁の秒(2桁未満、前に0を追加) | 09 |
| l | 3桁のミリ秒(0を追加する前に3桁未満) | 015 |
| n | 9桁のミリ秒数(9桁未満、前に0を追加) | 562000000 |
| p | 小文字の朝または午後のマーキング | ミディアム:午後 英語:PM |
| z | GMTのRFC822タイムゾーンに対するオフセット | +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(); // hはsystemutprintf( "2桁の24時間の時間システム(2桁未満の場合0前):%th%n"、日付)を使用します。 // systemutprintf( "2桁の12時間の時間システム(2桁未満の場合は0の前):%ti%n"、日付)を使用します。 // kはsystemutprintf( "2桁の24時間の時間システム(0ではない場合0 0ではない場合0 0ではない場合0 0ではない場合0 0ではない場合は0 0ではない場合、0 0ではない場合は0); %tm%n "、date); // s systemutprintf(" 2桁の秒(2桁未満の場合は0の前):%ts%n "、日付); // lは" 3桁の分(3桁未満の場合は0分前):%tl%n "、日付); %tn%n "、date); // pはstring str = stringformat(localeus、"小文字の朝または午後のマーク(英語):%tp "、date); systemoutprintln(str); systemoutprintf("朝または午後のマークの小文字または午後のマーク(媒体):%tp%n ");ゾーン:%tz%n "、date); // z's systemoutprintf("タイムゾーンの略式文字列:%tz%n "、日付); // sの使用SystemOutPrintf( "1970-1-1 00:00:00現在に渡された秒数:%ts%n"、日付); // q's systemoutprintf( "1970-1-1 00:00:00これまでに通過したミリ秒数:%tq%n"、date); }出力結果
2桁の24時間時間(2桁未満の場合は0の前):11 2桁の12時間時間(2桁未満の場合は0前):11 2桁の24時間前(2桁未満の場合は0の前):11 2桁の時間(2桁未満の場合0前):11 2桁の時間(0の場合は0) 2桁の数字秒(2桁未満の場合は0の前):52 3桁の数桁のミリ秒(3桁未満の場合は0前):773 9桁の数字ミリ秒(9桁未満の場合は0前):7730000000朝または午後の午後のマーク(英語または午後の標的のための午前中または午後のマーク) RFC822タイムゾーン:+0800タイムゾーンの略語文字列:CST 1970-1-1 00:00:00
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。