Guava CharMatcher类

来源:这里教程网 时间:2026-02-17 21:39:16 作者:

Guava CharMatcher类

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

类声明

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

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

字段

序号字段及描述
1static CharMatcher ANY 匹配任意字符。
2static CharMatcher ASCII 判断字符是否为ASCII字符,即其代码点小于128。
3static CharMatcher BREAKING_WHITESPACE 判断字符是否为断字符空白(即可以用于格式化目的的单词间的空白)。
4static CharMatcher DIGIT 判断字符是否为Unicode中的数字字符。
5static CharMatcher INVISIBLE 判断字符是否为不可见字符,即其Unicode类别是SPACE_SEPARATOR、LINE_SEPARATOR、PARAGRAPH_SEPARATOR、CONTROL、FORMAT、SURROGATE和PRIVATE_USE之一(根据ICU4J判断)。
6static CharMatcher JAVA_DIGIT 判断字符是否为根据Java定义的数字字符。
7static CharMatcher JAVA_ISO_CONTROL 判断字符是否为ISO控制字符,根据Character.isISOControl(char)的指定。
8static CharMatcher JAVA_LETTER 判断字符是否为根据Java定义的字母字符。
9static CharMatcher JAVA_LETTER_OR_DIGIT 判断字符是否为根据Java定义的字母或数字字符。
10static CharMatcher JAVA_LOWER_CASE 判断字符是否为根据Java定义的小写字母字符。
11static CharMatcher JAVA_UPPER_CASE 判断字符是否为根据Java定义的大写字母字符。
12static CharMatcher NONE 不匹配任何字符。
13static CharMatcher SINGLE_WIDTH 判断字符是否为单宽字符(非双宽字符)。
14static CharMatcher WHITESPACE 判断字符是否为空白字符,根据最新的Unicode标准,示例如下。

构造函数(构造器)

Sr.No构造函数和描述
1protected CharMatcher() 供子类使用的构造函数。

类方法

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

查看结果。

123Mahesh Parasharmahesh***mahesh123

相关推荐