教程 > Guava 教程 > Guava 基础 阅读:17

Guava CharMatcher 类

返回 Guava String 实用程序


CharMatcher 提供了多种方法来处理 char 值的各种 JAVA 类型。


类声明

以下是 com.google.common.base.CharMatcher 类的声明

@GwtCompatible(emulated = true)
public final class CharMatcher
   extends Object

字段

序号 字段 说明
1 static CharMatcher ANY 匹配任何字符。
2 static CharMatcher ASCII 确定字符是否为 ASCII,即其代码点是否小于 128。
3 static CharMatcher BREAKING_WHITESPACE 确定字符是否为分隔符(即,出于格式化目的,可以将空格解释为单词之间的分隔符)。
4 static CharMatcher DIGIT 根据 Unicode 确定字符是否为数字。
5 static CharMatcher INVISIBLE 确定字符是否不可见; 也就是说,根据 ICU4J,如果它的 Unicode 类别是 SPACE_SEPARATOR、LINE_SEPARATOR、PARAGRAPH_SEPARATOR、CONTROL、FORMAT、SURROGATE 和 PRIVATE_USE 中的任何一个。
6 static CharMatcher JAVA_DIGIT 根据 Java 的定义,判断一个字符是否为数字。
7 static CharMatcher JAVA_ISO_CONTROL 确定字符是否为 Character.isISOControl(char) 指定的 ISO 控制字符。
8 static CharMatcher JAVA_LETTER 根据 Java 的定义,判断一个字符是否为字母。
9 static CharMatcher JAVA_LETTER_OR_DIGIT 根据 Java 的定义,判断一个字符是字母还是数字。
10 static CharMatcher JAVA_LOWER_CASE 根据 Java 的定义,判断一个字符是否为小写。
11 static CharMatcher JAVA_UPPER_CASE 根据 Java 的定义,判断一个字符是否为大写。
12 static CharMatcher NONE 不匹配任何字符。
13 static CharMatcher SINGLE_WIDTH 确定字符是否为 single-width(而非 double-width)。
14 static CharMatcher WHITESPACE 根据最新的 Unicode 标准确定字符是否为空白,如此处所示。

构造方法

序号 构造方法 说明
1 protected CharMatcher() 供子类使用的构造函数。

类方法

序号 方法 说明
1 CharMatcher and(CharMatcher other) 返回匹配此匹配器和其他匹配器匹配的任何字符的匹配器。
2 static CharMatcher anyOf(CharSequence sequence) 返回匹配给定字符序列中存在的任何字符的字符匹配器。
3 boolean apply(Character character) 已弃用。 仅为满足Predicate接口而提供; 使用 matches(char) 代替。
4 String collapseFrom(CharSequence sequence, char replacement) 返回输入字符序列的字符串副本,每组与此匹配器匹配的连续字符由单个替换字符替换。
5 int countIn(CharSequence sequence) 返回在字符序列中找到的匹配字符数。
6 static CharMatcher forPredicate(Predicate<? super Character> predicate) 返回与给定的基于字符的谓词具有相同行为的匹配器,但它对原始 char 实例进行操作。
7 int indexIn(CharSequence sequence) 返回字符序列中第一个匹配字符的索引,如果不存在匹配字符,则返回 -1。
8 int indexIn(CharSequence sequence, int start) 返回字符序列中第一个匹配字符的索引,从给定位置开始,如果在该位置之后没有字符匹配,则返回 -1。
9 static CharMatcher inRange(char startInclusive, char endInclusive) 返回匹配给定范围内任何字符的字符匹配器(两个端点都包括在内)。
10 static CharMatcher is(char match) 返回一个只匹配一个指定字符的字符匹配器。
11 static CharMatcher isNot(char match) 返回匹配除指定字符以外的任何字符的字符匹配器。
12 int lastIndexIn(CharSequence sequence) 返回字符序列中最后一个匹配字符的索引,如果不存在匹配字符,则返回 -1。
13 abstract boolean matches(char c) 确定给定字符的真值或假值。
14 boolean matchesAllOf(CharSequence sequence) 如果字符序列仅包含匹配字符,则返回 true。
15 boolean matchesAnyOf(CharSequence sequence) 如果字符序列包含至少一个匹配字符,则返回 true。
16 boolean matchesNoneOf(CharSequence sequence) 如果字符序列不包含匹配字符,则返回 true。
17 CharMatcher negate() 返回匹配此匹配器不匹配的任何字符的匹配器。
18 static CharMatcher noneOf(CharSequence sequence) 返回一个 char 匹配器,它匹配给定字符序列中不存在的任何字符。
19 CharMatcher or(CharMatcher other) 返回匹配此匹配器或其他匹配的任何字符的匹配器。
20 CharMatcher precomputed() 返回一个在功能上等同于此匹配器的字符匹配器,但查询起来可能比原来的更快;
21 String removeFrom(CharSequence sequence) 按顺序返回包含字符序列的所有非匹配字符的字符串。
22 String replaceFrom(CharSequence sequence, char replacement) 返回输入字符序列的字符串副本,每个与此匹配器匹配的字符都被给定的替换字符替换。
23 String replaceFrom(CharSequence sequence, CharSequence replacement) 返回输入字符序列的字符串副本,每个匹配此匹配器的字符都被给定的替换序列替换。
24 String retainFrom(CharSequence sequence) 按顺序返回包含字符序列的所有匹配字符的字符串。
25 String toString() 返回此 CharMatcher 的字符串表示形式,例如 CharMatcher.or(WHITESPACE, JAVA_DIGIT)
26 String trimAndCollapseFrom(CharSequence sequence, char replacement) 完全按照 collapseFrom(java.lang.CharSequence, char) 的方式折叠匹配字符组,只是删除序列开头或结尾的匹配字符组而不进行替换。
27 String trimFrom(CharSequence sequence) 返回输入字符序列的子字符串,该子字符串忽略了此匹配器从字符串的开头和结尾匹配的所有字符。
28 String trimLeadingFrom(CharSequence sequence) 返回输入字符序列的子字符串,该子字符串忽略了此匹配器从字符串开头匹配的所有字符。
29 String trimTrailingFrom(CharSequence sequence) 返回输入字符序列的子字符串,该子字符串忽略了此匹配器从字符串末尾开始匹配的所有字符。

方法继承

该类继承了以下类的方法 -

  • java.lang.Object

CharMatcher 类示例

C:/> Guava 中使用我们选择的任何编辑器创建以下 java 程序。

GuavaTester.java

import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;

public class GuavaTester {
   public static void main(String args[]) {
      GuavaTester tester = new GuavaTester();
      tester.testCharMatcher();
   }

   private void testCharMatcher() {
      System.out.println(CharMatcher.DIGIT.retainFrom("mahesh123"));    // only the digits
      System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom("     Mahesh     Parashar ", ' '));

      // 去除末尾的空格,并将空格替换/折叠为单个空格
      System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom("mahesh123", "*"));  // star out all digits
      System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom("mahesh123"));

      // 消除所有不是数字或小写的字符
   }
}

验证结果

使用 javac 编译器编译类,如下所示

C:\Guava>javac GuavaTester.java

现在运行 GuavaTester 以查看结果。

C:\Guava>java GuavaTester

结果如下

123
Mahesh Parashar
mahesh***
mahesh123

返回 Guava String 实用程序

查看笔记

扫码一下
查看教程更方便