专栏目录

三、Java 9 ~ 17 新特性试读

Java 15 新特性:文本块

友情提示

推荐您使用 Chrome 浏览器来阅读本实战专栏,其他浏览器可能存在兼容性问题。

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 转义符,可以指定某个位置空一格,代码如下:

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

最后编辑于 2024-04-25 22:22:23