package com.levelup.java.string;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import org.junit.Test;
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
/**
* This java example will demonstrate how to count
* the number of words in a string.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/count-number-of-words-in-string/'>Count number of words in string</a>
*/
public class CountNumberOfWordsInString {
static String phrase = "How many words are contained within this sentence.";
@Test
public void count_words_in_string_java() {
StringTokenizer stringTokenizer = new StringTokenizer(phrase);
assertEquals(8, stringTokenizer.countTokens());
}
@Test
public void count_words_in_string_java8() throws IOException {
assertEquals(8, Arrays.stream(phrase.split(" ")).count());
}
@Test
public void count_words_in_string_guava() throws IOException {
List<String> splitWords = Splitter.on(CharMatcher.WHITESPACE)
.splitToList(phrase);
assertEquals(8, splitWords.size());
}
}