Java文本块完美方法:告别多行字符串的噩梦

你们肯定用过String变量来存一些跨越多行的值吧?比如:

  • 给AI的提示词
  • JSON数据
  • HTML/XML代码
  • 程序代码片段

传统方式的痛苦 想象一下你要存下面这段JSON:

json
{
    "name": "王小明"
    "爱好": "#打篮球",
    "座右铭": "每天进步一点点"
}

用老方法得写成这样:

java

String myJson = "{\n" +
                "    \"name\": \"王小明\"\n" +
                "    \"爱好\": \"#打篮球\",\n" +
                "    \"座右铭\": \"每天进步一点点\"\n" +
                "}";

简直要命啊!看到没:

  • 每行都要用+连接
  • 所有引号都要用\转义
  • 还要手动加\n换行

代码丑到亲妈都不认识

而且你们发现没?上面的JSON其实少了个逗号!但在这一团乱麻里根本看不出来!

救星来了:文本块(Text Blocks) Java 15开始有了文本块,现在可以这样写:

java
String myJson = """
                {
                    "name": "王小明"
                    "爱好": "#打篮球",
                    "座右铭": "每天进步一点点"
                }""";

是不是清爽多了?就像直接复制粘贴一样简单!

文本块使用指南 基本规则

  • 用三个引号"""开头和结尾
  • 开头引号后必须换行
  • 自动保留缩进格式

空白字符处理

  • 前导空格:以最左边的非空字符为准
  • 末尾空格:默认会自动去掉
  • 想保留空格?用\s标记

续行技巧 如果不想在字符串里换行(比如写超长URL),可以在行尾加\:

java
String url = """
        https://www.example.com/\
        page1/\
        page2""";

实际应用场景 1. 存储JSON/XML 再也不用担心漏逗号、少引号了!

2. HTML模板 java

String html = """
    <div class="card">
        <h1>你好,{name}!</h1>
        <p>今天是{date}</p>
    </div>""";

3. SQL查询 java

String query = """
    SELECT name, age 
    FROM students
    WHERE score > 90
    ORDER BY age DESC""";

4. 多行日志消息 java

logger.error("""
    订单处理失败!
    订单ID: {}
    错误原因: {}
    时间: {}""", orderId, reason, LocalDateTime.now());

5. 有趣的ASCII艺术 java

String art = """
    ╭━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭╮
    ┃╭╮┃╱╱╱╱╱╱╱╱╱╱╱╱┃┃
    ┃╰╯╰┳━━┳╮╭┳━━┳━╯┃
    ┃╭━╮┃╭╮┃╰╯┃┃━┫╭╮┃
    ┃╰━╯┃╰╯┃┃┃┃┃━┫╰╯┃
    ╰━━━┻━━┻┻┻┻━━┻━━╯""";

为什么这么好用? 代码更干净:不用一堆+和\n了 更易读:直接看到最终字符串的样子 少犯错:容易发现语法错误 智能提示:IDE能识别JSON/HTML语法

迁移小贴士 如果你的项目还在用老Java版本:

  • 升级到Java 15+
  • 用IDE的"Convert to Text Block"功能一键转换
  • 享受写代码的快乐!

文本块就像是Java送给程序员的一份礼物,让我们处理多行字符串时不再抓狂。赶紧用起来吧!