扫码一下
查看教程更方便
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 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