package com.levelup.java.guava;
import static org.junit.Assert.assertEquals;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
/**
* This java example will demonstrate examples of
* Google Guava Splitter
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/guava-splitter-example/'>Splitter example</a>
*
*/
public class SplitterExample {
@Test
public void split_string_to_list_using_delimiter () {
List<String> oakTrees =
Splitter.on(',')
.trimResults()
.omitEmptyStrings()
.splitToList("Granit Oak, Bartek, Gernikako Arbola, "
+ "Queen Elizabeth Oak, Kongeegen (the King Oak), "
+ "ChĂȘne chapelle, Poltava Oak,,,");
assertEquals(7, oakTrees.size());
}
@Test
public void split_string_to_list_using_charmatchers () {
List<String> abcs123s = Splitter.on(CharMatcher.anyOf(";,.)"))
.trimResults()
.omitEmptyStrings()
.splitToList("a,b;c.d,e.f),g,h.i;j.1,2.3;4.5,6;7.8,9;0");
assertEquals(20, abcs123s.size());
}
@Test
public void split_string_using_regular_expresion () {
List<String> splitOnLetter = Splitter
.onPattern("a|b")
.splitToList("12312a31231b23123");
assertEquals(3, splitOnLetter.size());
}
@Test
public void split_string_to_list_using_fix_length () {
List<String> digits = Splitter
.fixedLength(1)
.splitToList("1234567890");
assertEquals(10, digits.size());
}
@Test
public void split_string_to_map () {
String str = "firstName:John , lastName:Doe, age:56, address:1234 Elm Street";
Map<String, String> demographics = Splitter.on(",")
.trimResults()
.withKeyValueSeparator(":")
.split(str);
assertEquals(4, demographics.size());
}
}