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


#Java 笔记


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 = """你好
世界
""";  // 不支持


( 本文完 )