jdk17中的Text Blocks

119 阅读1分钟

前言

Jdk17引入了文本块概念,文本块是一个多行字符串文字,它避免了大多数转义的需要,能够比较方便操作字符串

文本块使用

以前使用json字符串时,需要转义

public class  JsonDemo {

    public static void main(String[] args) {
        String json = "{\n" +
                "    \"id\": 1\n" +
                "}";

        System.out.println(json);

    }
}

但是使用文本块之后,可以这么写

public class  JsonDemo {

    public static void main(String[] args) {
        String json = """
                {
                "id": 1
                }
                """;

        System.out.println(json);

    }
}

这种方式不仅让代码更容易编写和理解,还保留了JSON的层次结构和格式,方便调试和维护,但是文本块的写法要记得在第一个"""换行,否则换编译报错

public class  JsonDemo {

    public static void main(String[] args) {
        String json = """ {
                "id": 1
                }
                """;

        System.out.println(json);

    }
}

这种会编译报错

总结

文本块不仅保留换行符,还会保留空格和缩进等格式。这使得文本块非常适合编写结构化的文本,如JSON、XML、HTML等,可以更好操作,但是前提是JDK版本要升级到17以上