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.
Elimizde şöyle bir kod olsun.
Pattern pattern = Pattern.compile("-|\\.");
pattern.splitAsStream(str) // your String
.map(Double::parseDouble)
.toArray(Double[]::new);
ÖrnekElimizde şö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