扫码一下
查看教程更方便
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) | 返回输入字符序列的子字符串,该子字符串忽略了此匹配器从字符串末尾开始匹配的所有字符。 |
该类继承了以下类的方法 -
在 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