package com.levelup.java.guava; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import org.junit.Test; import com.google.common.base.CharMatcher; /** * This java example will demonstrate Google * Guava Charmatcher * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/guava-charmatcher-example/'>Charmatcher example</a> * */ public class CharMatcherExample { @Test public void remove_all_lower_case_from_string () { String allButLowerCase = CharMatcher.JAVA_LOWER_CASE .negate() .retainFrom("B-double E double R U-N beer run"); assertEquals("B- E R U-N ", allButLowerCase); } @Test public void trim_leading_spaces_from_string () { String leftTrimmedString = CharMatcher.WHITESPACE .trimLeadingFrom(" Some String "); assertEquals("Some String ", leftTrimmedString); } @Test public void trim_trailing_spaces_from_string () { String rightTrimmedString = CharMatcher.WHITESPACE .trimTrailingFrom(" Some String "); assertEquals(" Some String", rightTrimmedString); } @Test public void trim_all_spaces_from_string () { String trimmedString = CharMatcher.WHITESPACE .trimFrom(" Some String "); assertEquals("Some String", trimmedString); } @Test public void remove_all_asterisk_from_string () { String stringWithoutAstricks = CharMatcher.is('*') .removeFrom("(* This is a comment. The compiler will ignore it. *)"); assertEquals("( This is a comment. The compiler will ignore it. )", stringWithoutAstricks); } @Test public void validate_all_charachters_in_string_is_digit_or_letter () { boolean randomPharse = CharMatcher.JAVA_LETTER_OR_DIGIT .matchesAllOf("wefwewef3r343fwdSVD()I#KMFI"); assertFalse(randomPharse); } @Test public void grade_within_passing_range () { boolean failedGrade = CharMatcher .inRange('A', 'C') .matches('F'); assertFalse(failedGrade); } @Test public void obtain_digits_from_telephone_number () { String telephoneNumber = CharMatcher .inRange('0','9') .retainFrom("123-456-7890"); assertEquals("1234567890", telephoneNumber); // worried about performance CharMatcher digits = CharMatcher .inRange('0','9') .precomputed(); String teleNumber = digits.retainFrom("123-456-7890"); assertEquals("1234567890", teleNumber); } @Test public void count_number_of_matching_chars () { int numberOfDigits = CharMatcher.DIGIT.countIn("123-LevelUpLunch"); assertEquals(3, numberOfDigits); } @Test public void collapse_whitespace_dash () { String address = "505 Williams Street"; String addressWithDash = CharMatcher.WHITESPACE.collapseFrom(address, '-'); assertEquals("505-Williams-Street", addressWithDash); } }