2 Haziran 2020 Salı

Splitter Sınıfı

fixedLength metodu
Mantık olarak Iterable döndürür
Örnek
Şöyle yaparız
Iterable<String> chunks = Splitter.fixedLength(30).split(string);
limit metodu
Örnek
Şöyle yaparız
String key = "mykey";
String value = "=2>@C=b";
String combined = key +"=" + value;

Splitter.on('=').limit(2).splitToList(combined);
Çıktı olarak şnu alırız.
[mykey, =2>@C=b]
on metodu
Ayraç karakterini belirtir.
Örnek
Şöyle yaparız.
String pairs = "cat:01,02,03;dog:AA,BB,CC;fish:A1,A2";

Map<String, String> map = Splitter.on(';')
    .withKeyValueSeparator(':')
    .split(pairs);
withKeyValueSeparator metodu
Iterable yerine Map döndürülmesine sebep olur. on() çağrısıyla key/value çiftleri arasındaki ayraç belirtilir. withKeyValueSeparator() çağrısıyla key/value arasındaki ayraç belirtilir.

Örnek
key/value çifti döndüğü ve bir Map'e yerleştirildiği için aynı key değerinden iki tane olamaz. Elimizde şöyle bir kod olsun
String fieldSplit = " ";
String valueSplit = "=";
String message = "ip=1.2.9.0 error=NA ip=1.2.9.0";
Map<String, String> parserMap = Splitter.on(fieldSplit).omitEmptyStrings()
.withKeyValueSeparator(valueSplit).split(message);
Exception olarak şunu alırız
... Duplicate key [ip] found.
Örnek
Şöyle yaparız.
String result = "...";
Map map = Splitter.on(",").withKeyValueSeparator(":").split(result);
Örnek
Şöyle yaparız.
String input = "..." +
Map<String, String> result = Splitter.on(":").withKeyValueSeparator("...").split(input);
Örnek
Şöyle yaparız
Splitter.MapSplitter mapSplitter = Splitter.on(",").withKeyValueSeparator("=");
String input = "A=1,B=2,C=null";
//when
Map<String, String> result = mapSplitter.split(input);
//then
assertThat(result)
  .containsExactly(entry("A", "1"),
                   entry("B", "2"),
                   entry("C", "null"));
// {A=1, B=2, C=null}

Hiç yorum yok:

Yorum Gönder