你们肯定用过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送给程序员的一份礼物,让我们处理多行字符串时不再抓狂。赶紧用起来吧!