【Java学習|初心者向け】Javaで複数行の文字列をスマートに扱う!Text Blocksの活用術

1. 導入:なぜText Blocksが重要なのか

JavaでSQLやJSON、HTMLといった長い文字列を扱う際、従来のやり方では「+」演算子で結合したり、改行コード(\n)を多用したりと、コードが非常に読みづらくなりがちでした。さらに、エスケープ処理のせいで本来の構造が見えなくなることも課題です。
Java 15から正式導入された「Text Blocks」を使えば、これらの煩雑な記述から解放され、直感的で美しいコードが書けるようになります。

2. 基礎知識:Text Blocksとは何か

Text Blocksは、トリプルクォート(”””)で囲まれた複数行の文字列リテラルです。
Javaでは変数を扱う際に「参照型」として文字列を扱いますが、これまで文字列リテラル(”…”)は1行でしか書けませんでした。Text Blocksを使うことで、ソースコード上の見た目そのままに文字列を定義できます。
また、Java 10から導入された型推論(var)と組み合わせることで、さらに簡潔な記述が可能です。

3. 実装・解決策:基本的な使い方

Text Blocksは、開始の”””を記述した直後に改行を入れるのがルールです。
また、自動的に「インデントの調整(共通の空白除去)」が行われるため、コード内で深くインデントしていても、出力される文字列には不要な空白が含まれません。これにより、クラスの中やメソッド内で綺麗に配置することが可能です。

4. サンプルプログラム

以下のコードをコピーして、Java 15以上の環境で実行してみてください。

public class TextBlocksSample {
    public static void main(String[] args) {
        // varを使った型推論で、簡潔に文字列を定義
        var json = """
                   {
                       "id": 1,
                       "name": "Javaエンジニア",
                       "role": "Senior"
                   }
                   """;

        // SQLのような複数行文字列も非常に読みやすい
        var sql = """
                  SELECT id, name 
                  FROM users 
                  WHERE status = 'ACTIVE'
                  """;

        System.out.println("--- JSON ---");
        System.out.println(json);
        System.out.println("--- SQL ---");
        System.out.println(sql);
    }
}

5. 応用・注意点:現場で役立つTIPS

インデントの挙動を理解する
Text Blocksは、右側の閉じトリプルクォート(”””)の位置に合わせて、先頭の空白を自動で削除します。そのため、閉じトリプルクォートを左端に寄せて書くのがコツです。

エスケープ処理の削減
従来の文字列ではダブルクォート(”)自体を表示するために \” と書く必要がありましたが、Text Blocks内ではそのまま ” を書くことができます。ただし、トリプルクォート(”””)そのものを文字列内で使いたい場合は、一部エスケープが必要です。

まとめ
Text Blocksは単なる「見た目の改善」だけでなく、可読性を高めることでバグの混入を防ぐ強力なツールです。特にJSONやSQLを扱う機会が多い現代のJava開発では、積極的に活用していきましょう。

コメント

タイトルとURLをコピーしました