3 Mayıs 2023 Çarşamba

Pattern.splitAsStream metodu - Split İşlemini Yapar ve Stream Döner

Giriş
String'i belirtilen örüntüye göre ayırıp stream döner. Aslında String.split() ile aynı işi yapıyor fakat direkt stream döndüğü için daha az kod yazılıyor

Örnek
Şöyle yaparız
String sentence = "Tandrew quickly registered for the dating site";
Pattern pattern = Pattern.compile("\\s"); // split at spaces
Stream<String> words = pattern.splitAsStream(sentence);

for (Object s : words.toArray()){
  System.out.println(s);
}

/* Output:
    Tandrew
    quickly
    registered
    for
    the
    dating
    site
*/
Örnek
Şöyle yaparız.
Pattern pattern = Pattern.compile("-|\\.");

pattern.splitAsStream(str) // your String
       .map(Double::parseDouble)
       .toArray(Double[]::new);
Örnek
Elimizde şöyle bir kod olsun.
List<String> locations = Arrays.asList("US:5423","US:6321","CA:1326","AU:5631");
Şu hale getirmek isteyelim.
AU = [5631]
CA = [1326]
US = [5423, 6321]
Şöyle yaparız.
Pattern DELIMITER = Pattern.compile(":");

Map<String, List<String>> locationMap = locations.stream()
    .map(s -> DELIMITER.splitAsStream(s).toArray(String[]::new))
        .collect(Collectors.groupingBy(a -> a[0], 
            Collectors.mapping(a -> a[1], Collectors.toList())));

Hiç yorum yok:

Yorum Gönder