从Java 8到 Java 17–Java 11
本文最后更新于 1199 天前,其中的信息可能已经有所发展或是发生改变。

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);
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇