Basic Guava Utilities-CharMatcher

CharMatcher提供操作字符以及字符串的功能,如下面的代码:

CharMatcher.BREAKING_WHITESPACE.replaceFrom(stringWithLinebreaks,' ');

如果需要将多个连续的tab键和空格键合并为单个空格键,可以使用下面的代码:

 @Test
 public void testRemoveWhiteSpace(){
   String tabsAndSpaces = "String   with   spaces and    tabs";
   String expected = "String with spaces and tabs";
   String scrubbed = CharMatcher.WHITESPACE.collapseFrom(tabsAndSpaces,' ');
   assertThat(scrubbed,is(expected));
 }

上面的例子有个问题,如果空格键或者tab键在字符串的开始处则也会合并为单个空格,这显然不是我们想要的,CharMatcher提供了trimAndCollapseFrom方法来处理上述的情况:

@Test
 public void testTrimRemoveWhiteSpace(){
   String tabsAndSpaces = "    String    with   spaces   and     tabs";
   String expected = "String with spaces and tabs";
   String scrubbed = CharMatcher.WHITESPACE.trimAndCollapseFrom(tabsAndSpaces,' ');
   assertThat(scrubbed,is(expected));
 }

CharMatcher还有一个最广泛有用的功能就是,能组合多种字符的匹配模式,如下面的代码片段:

CharMatcher cm = CharMatcher.JAVA_DIGIT.or(CharMatcher.WHITESPACE);

上面的匹配器不仅会匹配数字而且还会匹配空格键。

你可能感兴趣的:(Basic Guava Utilities-CharMatcher)