package com.levelup.java.string; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; /** * This example will demonstrate parsing * a zipcode in java and guava. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/parse-zipcode-from-string/'>Parse a zip code</a> * */ public class ParseZipCode { @Test public void zip_code_parser_java () { String zipCode = "535381234"; String zip5 = zipCode.substring(0, 5); String zip4 = ""; if (zipCode.length() == 9) { zip4 = zipCode.substring(5); } assertEquals("53538", zip5); assertEquals("1234", zip4); } @Test public void zip_code_parser_guava_delimiter () { String fullZipCode = "53538-1234"; Iterable<String> zipCodePieces = Splitter.on(CharMatcher.anyOf("-")) .trimResults() .omitEmptyStrings().split(fullZipCode); String zip5 = Iterables.get(zipCodePieces, 0); String zip4 = Iterables.get(zipCodePieces, 1); assertEquals("53538", zip5); assertEquals("1234", zip4); } @Test public void zip_code_parser_guava_by_fixed_length () { String zipCode = "535381234"; Iterable<String> zipCodePieces = Splitter.fixedLength(5) .trimResults() .omitEmptyStrings().split(zipCode); String zip5 = Iterables.get(zipCodePieces, 0); String zip4 = Iterables.get(zipCodePieces, 1); assertEquals("53538", zip5); assertEquals("1234", zip4); } }