String 操作の全体イメージ
文字列操作は「画面表示」「ログ出力」「メッセージ生成」で毎日のように使う基本スキルです。 Java では concat や substring、format などのメソッドを使って、文字列をつないだり、切り出したり、整形したりします。 ここを丁寧に押さえておくと、ログも画面表示も「読みやすく・意図が伝わる形」で書けるようになります。
concat で文字列をつなぐ
concat の基本
concat は「文字列を後ろにくっつける」メソッドです。
String hello = "Hello";
String world = "World";
String result = hello.concat(" ").concat(world);
System.out.println(result); // Hello World
JavaScript+ 演算子とやっていることは同じですが、「メソッドとして連結している」ことがはっきり見えるのが特徴です。 "Hello" + " " + "World" と書く代わりに、hello.concat(" ").concat(world) と書くイメージです。
concat と + の違いを意識する
初心者向けには「基本は + でOK、メソッドとして書きたいときは concat」くらいの理解で十分です。 ただし、null に対して concat を呼ぶと NPE になるので、そこだけ注意が必要です。
String s = null;
// s.concat("X"); // ここで NullPointerException
JavaScript一方、"prefix" + s のような書き方だと、s が null のとき "prefixnull" という文字列になります。 ログなどで「null という文字列でもいいから出したい」のか、「null のときはそもそも連結したくない」のかを意識して、どちらの書き方を選ぶか決めるとよいです。
substring で一部を切り出す
substring の基本形
substring は「文字列の一部を切り出す」メソッドです。
String text = "HelloWorld";
String sub1 = text.substring(0, 5); // 0文字目から4文字目まで
String sub2 = text.substring(5); // 5文字目から最後まで
System.out.println(sub1); // Hello
System.out.println(sub2); // World
JavaScriptインデックスは 0 始まりで、「開始位置は含む」「終了位置は含まない」というルールです。 substring(0, 5) は「0,1,2,3,4 の5文字」を切り出す、というイメージになります。
ログや表示でよくある使い方
ログや表示では、「先頭何文字だけを見せたい」「日付文字列から年・月・日を切り出したい」といった場面で substring をよく使います。
String date = "2026-07-11";
String year = date.substring(0, 4); // "2026"
String month = date.substring(5, 7); // "07"
String day = date.substring(8, 10); // "11"
System.out.println(year + "年" + month + "月" + day + "日");
JavaScriptここで重要なのは、「インデックスをハードコードしている」ということです。 フォーマットが変わると一気に壊れるので、「この文字列は必ずこの形式で来る」という前提があるときだけ使うようにするのが安全です。
format で「きれいなメッセージ」を作る
String.format の基本
String.format は「テンプレート文字列に値を埋め込んで、整形された文字列を作る」メソッドです。
String name = "MONO";
int age = 25;
String message = String.format("名前: %s, 年齢: %d", name, age);
System.out.println(message); // 名前: MONO, 年齢: 25
JavaScript%s は文字列、%d は整数を埋め込む場所を表しています。 テンプレートの形を先に決めておいて、あとから値だけ差し込むイメージです。
ログ出力での format の使い方
ログでは「決まったフォーマットで情報を並べたい」ことが多いので、String.format がとても役立ちます。
String user = "taro";
String action = "LOGIN";
String time = "2026-07-11 18:36";
String log = String.format("[%s] user=%s action=%s", time, user, action);
System.out.println(log);
// [2026-07-11 18:36] user=taro action=LOGIN
JavaScript+ でつなぐより、「どんな形で出したいか」がテンプレートとして一目で分かるのがポイントです。 ログフォーマットを仕様として決めておき、その通りに String.format で組み立てると、後から見返したときに非常に読みやすくなります。
数値や桁数の整形
String.format は、数値の桁数や小数点以下の桁数を揃えるのにも使えます。
double price = 1234.5;
String formatted = String.format("価格: %.2f 円", price);
System.out.println(formatted); // 価格: 1234.50 円
JavaScript%.2f は「小数点以下2桁の浮動小数点数」という意味です。 レポート表示やログで「桁数を揃えたい」「見た目をきれいにしたい」ときに、こうした指定が効いてきます。
まとめと意識してほしいポイント
concat は「文字列をつなぐ」ためのメソッドで、+ とほぼ同じ役割ですが、null の扱いが違うことを意識して使うとよいです。 substring は「一部を切り出す」ためのメソッドで、インデックスの範囲とフォーマット前提をきちんと意識して使うことが重要です。 format は「テンプレートに値を埋め込んで、読みやすいメッセージやログを作る」ためのメソッドで、表示・ログ処理の質を一段上げてくれます。
