专栏目录

三、Java 9 ~ 17 新特性试读

专栏目录

三、Java 9 ~ 17 新特性试读

Java 15 新特性:文本块

作者头像 犬小哈
446字
2分钟
6张图
2,713

友情提示 : 推荐使用谷歌浏览器来阅读本专栏,其他浏览器可能存在兼容性问题。

1. Java 15 之前拼接字符串

在 JDK 15 之前,如果我们想拼接多行字符串,需要通过 + 号来完成,使用过的童鞋都知道,非常非常不优雅。如下面这段,截取自星球上个项目 中的示例代码,用户发布评论后,发送邮件通知功能,需要拼接邮件内容的 HTML 代码:

    public static void main(String[] args) {
    	// 拼接 HTML
        String html = "<html><body>" +
                "<h2>你的评论:</h2><p>%s</p>" +
                "<h2>审核未通过原因:</h2><p>%s</p>" +
                "<p><a href='%s' target='_blank'>查看详情</a></p>" +
                "</body></html>";

        // 输出的字符串
        String output = String.format(html, "xxx", "包含敏感词", "https://www.quanxiaoha.com");
        
        // 打印输出到控制台
        System.out.println(output);
    }

2. Java 15 之后拼接字符串

在 Java 15 之后,支持通过 """ 三个双引号,文本块语法来书写,代码如下:

    public static void main(String[] args) {
		// 拼接 HTML 
        String html = """
                <html>
                    <body>
                        <h2>你的评论:</h2>
                        <p>%s</p>
                        <h2>审核未通过原因:</h2>
                        <p>%s</p>
                        <p><a href='%s' target='_blank'>查看详情</a></p>
                    </body>
                </html>
                """;

        // 输出的字符串
        String output = String.format(html, "xxx", "包含敏感词", "https://www.quanxiaoha.com");

        // 打印输出到控制台
        System.out.println(output);
    }
}

可以明显感觉出来,代码优雅了很多,也更好维护了~

3. 相关转义符

另外,文本块还支持添加转义符。

3.1 合并行转义符:\

通过添加 \ 合并行转义符,可以让指定的两行合并到同一行中,如下图所示:

执行后,控制台输出如下:

3.2 空格转义符:\s

通过添加 \s 转义符,可以指定某个位置空一格,代码如下:

执行后,控制台输出如下:

添加小哈私人微信

已加入星球的小伙伴,记得添加小哈私人微信,拉你进 VIP 讨论群

一定要备注 “星球” 哟,不然通过率极低

分享有赏

打开星球 APP,操作图如下

觉得星球还不错的话,可邀请好友加入呀

通过星球 APP 专属的分享链接加入,分享者将获得票价的 40% 分成,同时可获得大量积分,每月积分靠前者,可获取小哈赠书哟,一波赢回票价~

微信扫一扫,加入星球

领券加入,超便宜~

专属的项目实战 / 1v1 提问 / Java学习路线

社群讨论 / 每月赠书 / 学习打卡

👉星球介绍