By using
Splitter class, you can split a string using a separator. The separator can be
a character, string, regular expression or CharMatcher instance.
Let’s start with
simple example.
import com.google.common.base.Splitter; public class SplitterEx { public static void main(String args[]) { Splitter splitter = Splitter.on("$"); Iterable<String> result = splitter .split("English$Hindi$Telugu$Kananda"); for (String str : result) { System.out.println(str); } } }
Output
English Hindi Telugu Kananda
Splitter.on("$");
Above
statement creates Splitter instance and use ‘$’ as separator.
splitter.split("English$Hindi$Telugu$Kananda");
Above method
split string using separator ‘$’.
You can trim
the result and omit empty strings.
import com.google.common.base.Splitter; public class SplitterEx { public static void main(String args[]) { Splitter splitter1 = Splitter.on("$"); Splitter splitter2 = Splitter.on("$").omitEmptyStrings(); Splitter splitter3 = Splitter.on("$").trimResults(); Splitter splitter4 = Splitter.on("$").trimResults().omitEmptyStrings(); String str = " English $ $ $ $ Hindi $ $ $Telugu$Kananda "; System.out.println("Simple split"); Iterable<String> result = splitter1.split(str); System.out.println(result); System.out.println("Omitting empty strings"); result = splitter2.split(str); System.out.println(result); System.out.println("Trimming results"); result = splitter3.split(str); System.out.println(result); System.out.println("By omitting and trimming results"); result = splitter4.split(str); System.out.println(result); } }
Output
Simple split [ English , , , , Hindi , , , Telugu, Kananda ] Omitting empty strings [ English , , , , Hindi , , , Telugu, Kananda ] Trimming results [English, , , , Hindi, , , Telugu, Kananda] By omitting and trimming results [English, Hindi, Telugu, Kananda]
Stop splitting after reaching certain limit
You can stop
splitting after reaches certain limit using “limit” function.
import com.google.common.base.Splitter; public class SplitterEx { public static void main(String args[]) { Splitter splitter = Splitter.on("$").limit(4); String str = "Hari$Krishna$Vadiraj$Sunil$Sankalp$abcd$qwer"; System.out.println(splitter.split(str)); } }
Output
[Hari, Krishna, Vadiraj, Sunil$Sankalp$abcd$qwer]
Split data to list
You can
store the split result into a List using splitToList method.
import java.util.List; import com.google.common.base.Splitter; public class SplitterEx { public static void main(String args[]) { Splitter splitter = Splitter.on("$"); String str = "Hari$Krishna$Vadiraj$Sunil$Sankalp$Phalgun$Sambith"; List<String> employees = splitter.splitToList(str); for (String emp : employees) { System.out.println(emp); } } }
Output
Hari Krishna Vadiraj Sunil Sankalp Phalgun Sambith
Splitter
class has MapSpliiter class, which takes a string in which keys and values are
delimited by one separator, and key-value pair is delimited by another
separator and returns a map instance.
import java.util.Map; import java.util.Set; import com.google.common.base.Splitter; import com.google.common.base.Splitter.MapSplitter; public class SplitterEx { public static void main(String args[]) { String str = "1=Hari Krishna Gurram$2=Arpan Debroy$3=Sujatha$4=Preethi Nair"; Splitter splitter = Splitter.on("$"); MapSplitter mapSplitter = splitter.withKeyValueSeparator('='); Map<String, String> employees = mapSplitter.split(str); Set<String> ids = employees.keySet(); for (String id : ids) { System.out.println(id + "\t" + employees.get(id)); } } }
Output
1 Hari Krishna Gurram 2 Arpan Debroy 3 Sujatha 4 Preethi Nair
No comments:
Post a Comment