package com.levelup.java.string; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.junit.Test; import com.google.common.base.Splitter; import com.google.common.collect.Lists; /** * This java example will demonstrate how to split string by whitespace. * * @author Justin Musgrove * @see <a href= * 'http://www.leveluplunch.com/java/examples/split-string-on-whitespace-chars/'>Sp * l i t string on whitespace</a> */ public class SplitStringOnWhitespace { private static final Logger logger = Logger.getLogger(SplitStrings.class); @Test public void split_on_whitespace_stringtokenizer() { StringTokenizer stringTokenizer = new StringTokenizer( "The snow glows white on the mountain tonight"); int numberOfTokens = stringTokenizer.countTokens(); while (stringTokenizer.hasMoreElements()) { logger.info(stringTokenizer.nextElement()); } assertTrue(numberOfTokens == 8); } @Test public void split_on_whitespace_split_regex() { String[] tokens = "The snow glows white on the mountain tonight" .split("\\s+"); logger.info(Arrays.toString(tokens)); assertTrue(tokens.length == 8); } @Test public void split_string_whitespace_java8() { List<String> splitOnWhitespace = Stream .of("The snow glows white on the mountain tonight") .map(w -> w.split("\\s+")).flatMap(Arrays::stream) .collect(Collectors.toList()); logger.info(splitOnWhitespace); assertTrue(splitOnWhitespace.size() == 8); } @Test public void split_string_whitespace_using_guava() { List<String> elementsInString = Lists.newArrayList(Splitter.on(" ") .split("The snow glows white on the mountain tonight")); logger.info(elementsInString); assertTrue(elementsInString.size() == 8); } @Test public void split_string_white_space_using_apache_commons() { String[] elementsInString = StringUtils .split("The snow glows white on the mountain tonight"); logger.info(Arrays.toString(elementsInString)); assertTrue(elementsInString.length == 8); } }