Java 学习笔记

所有文章
📖 最新文章 transmittable-thread-local 库 JOOR 反射库 Lombok 库:为你减少样板代码 Slf4j 日志组件的使用 加速maven、gradle依赖下载
📖 Java 基础 安装 第一个程序 使用 UTF-8 编写代码 空值 null 正则表达式 线程 日期/时间 匿名类 枚举 ThreadLocal 线程本地变量 动态代理 jar 命令

Java 13 新特性:文本块(多行字符串)


Java 13 提供了文本块(Text Blocks) 预览特性。该特性会方便开发者编写多行字符串。

该特性的具体介绍见 JEP 355

注意,是预览特性,默认不支持。

了解 Python 的同学会对这个特性比较熟悉,不过 Java 的这个特性与 Python 不完全相同。比如"""你好"""这种不换行的写法是不支持的。

使用示例1:

public class TestMultiLineStr {

    public static void main(String[] args) {
        String data = """
        你好
        世界
        """;
        System.out.printf(data);
    }
}

编译、执行时候,需要加上--enable-preview参数:

$ javac --release 13 --enable-preview TestMultiLineStr.java
$ java13 --enable-preview TestMultiLineStr
你好
世界

可以看到,多行的相同空白前缀会被去掉。

使用示例2:

public class TestMultiLineStr {

    public static void main(String[] args) {
        String data = """
                        你好
                        世界
                        """;
        System.out.printf(data);
    }
}

运行结果:

你好
世界

使用示例3:

public class TestMultiLineStr {

    public static void main(String[] args) {
        String data = """
        你好
        世界""";
        System.out.printf(data);
    }
}

运行结果:

你好
世界

使用示例4:

public class TestMultiLineStr {

    public static void main(String[] args) {
        String data = """
        你好"  "
        世界''
        """;
        System.out.printf(data);
    }
}

运行结果:

你好"  "
世界''

不支持的写法

String data = """你好""";  // 不支持
String data = """你好
世界
""";  // 不支持

( 本文完 )

目录