Text Blocksの概要
Text Blocksは、エスケープシーケンスを含む文字列を扱うための新機能で、Java 15で正式リリースされました。
従来のJavaでは、改行を含む文字列を扱うために、\rや\nなどのエスケープシーケンスを使っていました。
しかし、エスケープシーケンスを使用すると、コーディングが複雑になり、可読性が低下するという問題がありました。
そこで登場したのがText Blocksになります。
Text Blocksは、エスケープシーケンスを必要とせず、文字列の改行やタブなどを表現できます。
これにより、ソースコードの可読性が向上し、コーディングの効率を上げることができます。
Text Blocksの使い方
記述方法
Text Blocksの記述は簡単です。
エスケープシーケンスを含む文字列を、3つのダブルクォーテーション(”)で囲むだけです。
// 従来
String strA = "これは\"1行目\"の文字列です。\n" +
"これは\"2行目\"の文字列です。";
// Text Blocks
String strB = """
これは"1行目"の文字列です。
これは"2行目"の文字列です。
""";
System.out.println("-----従来-----");
System.out.println(strA);
System.out.println("-----Text Blocks-----");
System.out.println(strB);
出力結果は以下になります。
-----従来-----
これは"1行目"の文字列です。
これは"2行目"の文字列です。
-----Text Blocks-----
これは"1行目"の文字列です。
これは"2行目"の文字列です
従来とText Blocksの2つのソースコードを比べると、以下のことがわかります。
- 従来は、文字列にエスケープシーケンスが挟まれることで、可読性が低下し、出力結果がわかりづらい。
- Text Bloksは、エスケープシーケンスが不要なため、可読性が向上し、意図した出力結果がわかりやすい。
ソースコード例
他にもText Blocksを活かしたソースコードの例を見ていきましょう。
SQL
Text Blocksを使用することで、簡潔で可読性の高いSQL文を表現することができます。
ソースコード
String strSQL = """
SELECT * FROM users
WHERE name = 'John'
;
""";
System.out.println(strSQL);
実行結果
SELECT * FROM users
WHERE name = 'John'
;
HTML
Text Blocksを使用することで、簡潔で可読性の高いHTML文を表現することができます。
ソースコード
String strHTML = """
<!DOCTYPE html>
<html lang="ja">
<head>
<title>Text Blocksの例</title>
</head>
<body>
<h1>Text Blocks</h1>
<p>
これは1行目の文字列です。
これは2行目の文字列です。
</p>
</body>
</html>
""";
System.out.println(strHTML);
実行結果
<!DOCTYPE html>
<html lang="ja">
<head>
<title>Text Blocksの例</title>
</head>
<body>
<h1>Text Blocks</h1>
<p>
これは1行目の文字列です。
これは2行目の文字列です。
</p>
</body>
</html>
Text BlocksからList型の生成
ここでは、Text Blocksから改行コードの区切りでList型を作成する方法について紹介します。
String text = """
これは1行目の文字列です。
これは2行目の文字列です。
""";
List<String> list = Arrays.asList(text.split("\n"));
System.out.println(list);
[これは1行目の文字列です。, これは2行目の文字列です。]
まとめ
Text Blocksを利用することで、コードの可読性やコーディングの効率はグンと上がります。
私も仕事でSQLをJavaファイルに記載することがありますが、Text Blocksを利用することで格段に読みやすいプログラムを作成することができます。
今後、エスケープシーケンスを含む文字列を作成することがあれば、是非利用してみてはいかがでしょうか。
コメント