3 Mayıs 2023 Çarşamba

Scanner.findAll metodu

Giriş
İmzası şöyle
Stream<MatchResult> findAll(Pattern)
Java 9 ile geliyor. 

Örnek
4 satırı birden okumak için şöyle yaparız. \R "Unicode linebreak sequence" için kullanılır. findAll Stream<MatchResult> döner. MatchResult'ın yakaladığı group()'u bir daha satırlara ayırırız ve List'e çeviririz.
try(Scanner s = new Scanner(PATH)) {
    s.findAll("(.*\\R){1,4}")
     .map(mr -> Arrays.asList(mr.group().split("\\R")))
     .forEach(System.out::println);
}
Örnek
Şöyle yaparız
var str = """
          List<String> results = stream
              .filter(s -> pattern.matcher(s).matches()).toList();
           """;

var words = new Scanner(str).findAll("[\\p{L}]+")
      .map(MatchResult::group).toList();

System.out.println(words);
// [List, String, results, stream, filter, s, pattern, matcher, s, matches, toList]

Hiç yorum yok:

Yorum Gönder