執筆時点でExtended Support期限が最も長いJava11で解説します。
※基本的にどのバージョンも変わりませんが、Java11はサポート期間が最も長いため利用者が最も多くなるだろうという想定のためです。
intからの変換
valueOf(int i)
数値を文字列に変換します。
1 2 3 |
String.valueOf(100); |
0埋めしたい場合
valueOfはStringに変換するだけなので、0埋めするにはformat関数を使います。
以下の例では5桁未満の数字の先頭を0で埋めています。
1 2 3 4 |
String.format("%05d", 123); // 00123 String.format("%05d", 12345); // 12345 |
int以外は?
int以外にもlongやdoubleなども変換できます。以下のリンクからオーバーロードされたvalueOfメソッドを確認してみてください。
参照:クラスString
フォーマット
formatメソッドは指定したフォーマットに基づいて文字列を作成するために使用されます。
format(String format, Object… args)
最初の引数がフォーマットで、あとはフォーマット上にマッピングする値を指定するだけです。
1 2 3 4 |
String.format("名前: %s, 年齢: %d", "ログログ", 50); // 名前: ログログ, 年齢: 50 |
書式パターン
書式のパターンは書式指示子と呼ばれます。以下は代表的な書式指示子と扱える値です。
書式指示子 | 値 |
%d | 10進整数 |
%f | 10進浮動小数 |
%s | 文字列 |
%n | プラットフォーム固有の行区切り文字 |
%o | 8進整数 |
%x | 16進整数 |
%% | %を出力 |
%b | boolean値 |
更に詳しいフォーマットは公式Docs クラスFormatter で参照できます。
分割
split(String regex)
正規表現(regex
)を基に文字列を分割し、結果を配列として返します。
CSVを要素ごとに取得するのに向いています。
1 2 3 4 5 6 7 8 9 10 11 12 |
String str = "apple,banana,orange"; String[] fruits = str.split(","); for (String fruit : fruits) { System.out.println(fruit); } // apple // banana // orange |
正規表現を使った例
例えば、数値(\d)で区切るということもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
String str = "a1b2c3d4"; String[] parts = str.split("\\d"); for (String part : parts) { System.out.println(part); } // a // b // c // d |
最大分割数を指定するには?
第2引数に最大分割数を与えることで分割結果の配列数を指定できます。
1 2 3 4 5 6 7 8 9 10 11 12 |
String str = "a1b2c3d4"; String[] parts = str.split("\\d"); for (String part : parts) { System.out.println(part); } // 出力結果は2つの配列になります。 // apple // banana,orange |
置換
replaceAll(String regex, String replacement)
replaceAll
メソッドは、正規表現(正規表現パターン)に一致するすべての部分文字列を指定した置換文字列に置き換えるためのメソッドです。
1 2 3 4 5 6 7 |
String original = "Java is fun! Java is powerful!"; String replaced = original.replaceAll("Java", "Python"); System.out.println("置き換え後: " + replaced); // 置き換え後: Python is fun! Python is powerful! |
(例)数字を “#” に置き換える
1 2 3 4 5 6 7 |
String textWithNumbers = "Phone: 123-456-7890"; String replacedNumbers = textWithNumbers.replaceAll("\\d", "#"); System.out.println("数字置き換え後: " + replacedNumbers); // 数字置き換え後: Phone: ###-###-#### |
(例)空白文字(スペース、タブ、改行など)を削除する
1 2 3 4 5 6 7 |
String textWithSpaces = " Hello\tWorld\n "; String removedSpaces = textWithSpaces.replaceAll("\\s", ""); System.out.println("空白削除後: " + removedSpaces); // 空白削除後: HelloWorld |
切り出し
substring(int beginIndex)
substring
メソッドは、指定されたインデックスから始まる部分文字列を返します。元の文字列を変更せず、新しい文字列を返します。
1 2 3 4 5 6 7 |
String original = "Hello, World!"; String substring = original.substring(7); System.out.println("部分文字列: " + substring); // 部分文字列: World! |
文字列から特定部分を抽出するには?
終端インデックスを持つ substring(int beginIndex, int endIndex)
を使います。
1 2 3 4 5 6 7 8 9 |
String date = "20250113"; String year = date.substring(0, 4); // "2025" を抽出 String month = date.substring(4, 6); // "01" を抽出 String day = date.substring(6); // "13" を抽出 System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day); // Year: 2025, Month: 01, Day: 13 |
初心者向けのおススメ書籍
長らく支持されている名著です。私も最初はここからスタートしました。
String以外にも多くの基本的なクラスの使い方がわかりやすく掲載されているのでとても参考になります。
コメント