html字符串使用‘+’字符串拼接写法
String html = "<html>\n" +
" <body>\n" +
" <p>Hello, world</p>\n" +
" </body>\n" +
"</html>\n";
html字符串使用Text Blocks(文本块)写法
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
SQL字符串使用‘+’字符串拼接写法
String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
"WHERE `CITY` = 'INDIANAPOLIS'\n" +
"ORDER BY `EMP_ID`, `LAST_NAME`;\n";
SQL字符串使用Text Blocks(文本块)写法
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
执行JS字符串代码‘+’字符串拼接写法
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("function hello() {\n" +
" print('\"Hello, world\"');\n" +
"}\n" +
"\n" +
"hello();\n");
执行JS字符串使用Text Blocks(文本块)写法
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("""
function hello() {
print('"Hello, world"');
}
hello();
""");
注意:
一个文本块是一种新的文字在Java语言中。它可以用来表示可能出现字符串文字的任何地方的字符串,但是可以提供更高的表现力和更少的意外复杂性。
文本块由零个或多个内容字符组成,并由打开和关闭定界符括起来。
所述开口定界符是三个双引号字符(一个序列"""
),接着是零个或多个空格,随后一个行结束。的内容开始于开口分隔符的线路终端器之后的第一个字符。
在结束分隔符是三个引号字符的序列。内容在结束定界符的第一个双引号之前的最后一个字符处结束。
与字符串文字中的字符不同,内容可以直接包含双引号字符。\"
允许在文本块中使用,但不是必需或不建议使用。选择粗大的定界符("""
),以便"字符可以不转义地显示,并且还可以在视觉上区分文本块和字符串文字。
与字符串文字中的字符不同,内容可以直接包含行终止符。\n
允许在文本块中使用,但不是必需或不建议使用。例如,文本块:
"""
line 1
line 2
line 3
"""
等效于字符串文字:
"line 1\nline 2\nline 3\n"
或字符串文字的串联:
"line 1\n" +
"line 2\n" +
"line 3\n"
如果在字符串的末尾不需要行终止符,则可以将结束定界符放在内容的最后一行。例如,文本块:
"""
line 1
line 2
line 3"""
等效于字符串文字:
"line 1\nline 2\nline 3"
文本块可以表示空字符串,尽管不建议这样做,因为它需要两行源代码:
String empty = """
""";
以下是格式错误的文本块的一些示例:
String a = """"""; // no line terminator after opening delimiter
String b = """ """; // no line terminator after opening delimiter
String c = """
"; // no closing delimiter (text block continues to EOF)
String d = """
abc \ def
"""; // unescaped backslash (see below for escape processing)
官方文档:http://openjdk.java.net/jeps/355