Java 11 String的lines()方法可將一個字串依換行符分成數個並返回Stream<String>。
字串中如有換行符(line terminator)如\n、\r或\r\n,則lines()會依此分割字串為數個並以Stream<String>返回。
String names = "John\nMary\nTony";
List<String> nameList = names.lines().collect(Collectors.toList());
nameList.forEach(System.out::println);
執行結果如下。
John
Mary
Tony
lines()的效能比split("\\R")好,因為其提供惰性執行及較精簡的的換行符搜尋。
(\R是Java 8才有的regex換行匹配符(linebreak matcher),相當於代表換行的unicode字元\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029])
沒有留言:
張貼留言