22 Mart 2021 Pazartesi

Collectors.joining metodu

Giriş
Bu metodun 3 tane overload edilmiş hali var. Aslında StringJoiner ile aynı işi yapar. İmzası şöyle
Collector<CharSequence, ?, String> joining()
Collector<CharSequence, ?, String> joining(CharSequence delimiter) {
Collector<CharSequence, ?, String> joining(CharSequence delimiter,
                                           CharSequence prefix,
                                           CharSequence suffix) {
joining metodu
Ayraç (delimiter) olmadan iki tane string nesnesini birleştirir
Örnek
Şöyle yaparız
var strs = List.of("one", "two", "three");

String s1 = strs.stream().collect(Collectors.joining());
// onetwothree

String s2 = strs.stream().collect(Collectors.joining("\t"));
// one two three

String s3 = strs.stream().collect(Collectors.joining(",", "{", "}"));
// {one,two,three}
joining metodu - delimiter
Örnek
Şöyle yaparız.
var strings = stream.collect(Collectors.joining(", "));

joining 
metodu - delimeter + prefix + suffix
İmzası şöyle
Collectors.joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
Örnek
Şöyle yaparız
String s = Arrays.asList(123, 456, 789)
    .stream()
    .map(Object::toString)
    .collect(Collectors.joining("), (", "(", ")"));
// (123), (456), (789)
Örnek
Şöyle yaparız.
String s = stringList.stream().collect(Collectors.joining(" and ", "prefix_", "_suffix"))
Örnek
Şöyle yaparız.
String values = list.stream().collect(Collectors.joining("','", "'", "'"));
Çıktı olarak şunu alırız.
'rest','test','best'

Hiç yorum yok:

Yorum Gönder