java文本块用三引号"""包裹多行字符串,java15预览、17正式支持;自动丢弃首尾换行,按最左非空行缩进量裁剪前导空白,空行保留,续行需用\,转义需显式书写。

Java 中使用文本块(Text Blocks)编写多行结构化字符串,只需用三个连续的双引号 """ 包裹内容,自动保留换行和大部分空白,比传统拼接或转义更清晰、易维护。
基本语法和格式要求
文本块以 """ 开头和结尾,开头引号后必须紧跟换行;内容从下一行开始,结束引号独占一行(或后跟分号/逗号等合法符号)。JVM 会自动去除每行开头与结束引号所在行首对齐的空白(即“公共缩进”)。
例如:
String json = """
{
"name": "Alice",
"age": 30,
"hobbies": ["reading", "coding"]
}
""";
上面的 JSON 字符串中,所有行都以 4 个空格缩进,文本块会把这 4 个空格作为基准移除,最终字符串不含开头缩进,但保留内部缩进和换行。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
处理缩进和空白的技巧
文本块自动裁剪的是“最小公共前导空白”,不是固定空格数。如果各行缩进不一致,裁剪量由缩进最少的非空行决定。
- 若某行缩进少于其他行(比如第一行无缩进,其余有 4 空格),则不会裁剪任何空白——可能导致意外空格
- 可用
\续行符抑制换行:在行尾加\可让下一行内容“接续”到当前行,不插入换行符 - 末尾空行会被保留,如需去掉,可调用
.stripTrailing()
与传统字符串拼接对比的优势
相比用 + 拼接或 \n\t 转义:
- 无需手动添加换行符和引号转义,XML/JSON/SQL 等结构化内容可原样书写
- 编辑时缩进直观,IDE 自动缩进友好,重构时不易出错
- 支持嵌入表达式(配合
STR."""...{expr}...""",需启用预览特性 STR 带插值,Java 21+ 支持)
常见注意事项
文本块是 Java 15 引入(预览)、Java 17 正式成为标准特性,确保编译和运行环境 ≥ JDK 17。
- 不能用于字符字面量(
'),只适用于字符串 - 开头
"""后不能有其他字符(包括空格),否则编译报错 - 中间不能出现连续三个双引号
""",否则提前终止;需表示三个引号时,改用"\"\"\""拼接或用replace
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










