从Java 8到 Java 17–Java 11

/ 0评 / 1

Java 11是这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本,Long-Term-Support,持续支持到2026年9月),是目前全球使用最多的LTS版本之一。

官方新特性:

本地变量类型

这个新功能是java10为Java增加一些语法糖 - 简化它并改善开发者体验

        var str = "Hello Java11";
        //等价于 String str = "Hello Java11";
        System.out.print(str); // Hello Java11

字符串API增强

Java11新增了一些字符串的处理方法,避免我们在很常见的场景中引入额外的、复杂的API。

isBlank()

用来判断字符串是不是空字符""或者trim()之后(" ")为空字符:

        String blankStr = " ";
        // true
        System.out.println("blankStr.isBlank():"+blankStr.isBlank());

lines()

将一个字符串按照行终止符(换行符\n或者回车符\r)进行分割,并将分割为Stream流:

        var str = "A\nB\nC";
        Stream<String> lines = str.lines();
        lines.forEach(System.out::println);
// a b c 

strip()

去除字符串前后的“全角和半角”空白字符

  1. strip() 删除字符串头尾的所有空白符
  2. stripLeading() 删除字符串左边 ( 头部 ) 的所有空白符
  3. stripTrailing()删除字符串右边 ( 尾部 ) 的所有空白符

trim()方法,从下面也看出来了差别,trim()只能去除半角空白符。例子:

        var str = " Java11 ";
        System.out.println("-" + str.strip() + "-");
        System.out.println("-" + str.stripLeading() + "-");
        System.out.println("-" + str.stripTrailing() + "-");
        System.out.println("-" + str.trim() + "-");

        str = "Java11\u3000";
        System.out.println("str = " + str.length());
        System.out.println("trim = " + str.trim().length());
        System.out.println("strip = " + str.strip().length());

repeat(n)

方法将字符串重复指定次数,如果传递的是负数,则会抛出异常,如果传递的是 0 ,那么就返回空字符串了

System.out.println("Java11".repeat(3)); // Java11Java11Java11

集合加强

Collection.toArray(IntFunction)

在java.util.Collection接口中添加了一个新的默认方法toArray(IntFunction)。此方法允许将集合的元素传输到新创建的所需运行时类型的数组。

        var list = List.of("Java", "Python", "C");
        String[] array = list.toArray(String[]::new);
        for (String s : array) {
            System.out.println("s:"+s);
        }

加强文件读写

Java 11中可以更轻松地从文件中读取和写入字符串内容了,我们可以通过Files工具类提供的新的静态方法readStringwriteString分别进行读写文件的字符串内容。

        String dir= "E://test_test";
        // 写入文件
        Files.writeString(Path.of("E://test_test//hello.txt"),"hello java 11");
        // 读取文件
        String fileContent = Files.readString(Path.of("E://test_test//hello.txt"));
        System.out.println("fileContent:"+fileContent);

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注