zoozkop
4/28/2019 - 2:07 PM

Java 11 字符串

//什么是局部变量类型推断
var javastack = "javastack";
System.out.println(javastack);

var javastack = "javastack";
//就等于:
String javastack = "javastack";

//字符串加强
//Java 11 增加了一系列的字符串处理方法,如以下所示。
//判断字符串是否为空白
" ".isBlank(); //true
 
//去除首尾空格
" Javastack ".strip(); //"Javastack"
 
//去除尾部空格
" Javastack ".stripTrailing(); //" Javastack"
 
//去除首部空格
" Javastack ".stripLeading(); // "Javastack "
 
//复制字符串
"Java".repeat(3); //"JavaJavaJava"
 
//行数统计
"A\nB\nC".lines().count();//3

//Stream 加强
//Stream 是 Java 8 中的新特性,Java 9 开始对 Stream 增加了以下 4 个新方法。

//1) 增加单个参数构造方法,可为null

Stream.ofNullable(null).count(); // 0
//2) 增加 takeWhile 和 dropWhile 方法

Stream.of(1, 2, 3, 2, 1)
    .takeWhile(n -> n < 3)
    .collect(Collectors.toList());  // [1, 2]
// 从开始计算,当 n < 3 时就截止。

Stream.of(1, 2, 3, 2, 1)
    .dropWhile(n -> n < 3)
    .collect(Collectors.toList());  // [3, 2, 1]
    
//这个和上面的相反,一旦 n < 3 不成立就开始计算。