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);
}
}