Guava - CharMatcher 类



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

确定字符是否为单宽(而不是双宽)。

14

static CharMatcher WHITESPACE

确定字符是否为根据最新 Unicode 标准的空格,此处有说明。

构造函数

序号 构造函数及描述
1

protected CharMatcher()

子类使用的构造函数。

类方法

序号 方法及描述
1

CharMatcher and(CharMatcher other)

返回一个匹配器,该匹配器匹配此匹配器和 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)

返回一个与给定的基于 Character 的谓词具有相同行为的匹配器,但该匹配器在原始 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)

返回一个字符匹配器,该匹配器匹配给定字符序列中不存在的任何字符。

19

CharMatcher or(CharMatcher other)

返回一个匹配器,该匹配器匹配此匹配器或 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 类的示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 C:/> Guava. 中。

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 ", ' '));

      // trim whitespace at ends, and replace/collapse whitespace into single spaces
      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"));

      // eliminate all characters that aren't digits or lowercase
   }
}

验证结果

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

C:\Guava>javac GuavaTester.java

现在运行 GuavaTester 以查看结果。

C:\Guava>java GuavaTester

查看结果。

123
Mahesh Parashar
mahesh***
mahesh123
guava_string_utilities.htm
广告