6个Java不容错过的新特性 -- New String Methods & Switch Expressions

「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战

2018年,随着新的发布节奏的采用,Java悄然经历了其发展中最大的变化之一。这个大胆的新计划使Java开发人员每六个月就能得到一个新的功能版本。

这对于保持Java的新鲜感和相关性来说是非常好的,但这也使得它很容易错过功能的引入。这篇文章总结了几个有用的新特性,并对它们进行了概述。

New String Methods

在Java 10和Java 12中,增加了几个有用的新的String方法。除了字符串操作方法外,还引入了两种新的方法来简化文本文件访问。

Java 10中的新字符串方法。

  • isBlank()。如果字符串是空的或者字符串只包含白色空间(这包括制表符),则返回真。注意isBlank()与isEmpty()不同,后者只在长度为0时返回真。
  • lines()。将一个字符串分割成一个字符串流,每个字符串包含一个行。 行是由/r或/n或/r/n定义的。
  • strip(), stripLeading(), stripTrailing()。分别从开头和结尾、仅开头和仅结尾处删除空白处。
  • repeat(int times)。返回一个字符串,该字符串采用原始字符串并重复指定的次数。
  • readString()。允许从文件路径直接读取字符串。
  • writeString(Path路径)。将字符串直接写到指定路径的文件中。

Java 12中新的String方法。

  • indent(int level)。将字符串缩进到指定的数量。负值只影响前面的空白处。
  • transform(Function f)。将给定的lambda应用于字符串。
import java.io.IOException;
import java.util.stream.Stream;
public class MyClass {
    public static void main(String args[]) throws IOException{
      String str = "test \ntest2 \n\rtest3 \r";
      Stream lines = str.lines();
      lines.forEach(System.out::println);
    }
}

/*
outputs:
test
test2
test3
*/
复制代码
Path path = Path.of("myFile.txt"); 
String text = Files.readString(path);
System.out.println(text);
复制代码

Switch Expressions

Java 12引入了switch表达式,允许在语句中内联使用switch。换句话说,switch表达式会返回一个值。Java 12还提供了一个箭头语法,它消除了对显式中断的需要以防止落空。Java 13更进一步,引入了yield关键字,明确表示switch情况下返回什么值。Java 14将新的switch表达式语法作为一项完整的功能。

让我们来看看一些例子。

class Main { 
  public static void main(String args[]) {
    int size = 3;
    String message = "";

switch (size){
 case 1 :
message = "one";
 case 3 :
   message = "three";
break;
 default :
message = "unknown";
break;
}

System.out.println("The number is " + message);
  }
}
复制代码

上面这段代码相当冗长,而且很棘手。事实上,这里面已经有一个错误了。

仔细看,有一个缺失的断点。下面的例子通过使用switch表达式简化了它。

class NewSwitch { 
  public static void main(String args[]) {
    int size = 3;

    System.out.println("The number is " +
      switch (size) {
        case 1 -> "one";
        case 3 -> "three";
        default -> "unknown";
      }
    );
  }
}
复制代码

在上面这个例子里,你可以看到switch表达式就在System.out.println调用中。这已经是一个很大的可读性胜利了,而且还消除了多余的消息变量。另外,箭头语法通过消除break语句减少了代码的占用。(在不使用箭头语法的时候,会使用yield关键字)。

感谢观看,这是6个Java不容错过的新特性第2篇文章,如果您有兴趣,可以关注一下我,方便查看后续文章,一起学习,共同进步,不胜感激!

Guess you like

Origin juejin.im/post/7034475698811043876