04-CharMatcher
使用步骤
1.定义匹配字符的匹配器
2.处理匹配的字符序列
创建 CharMacher
// 匹配所有的 CharMatcher charMatcher1 = CharMatcher.any(); CharMatcher charMatcher2 = CharMatcher.anyOf("aef"); // 什么也不匹配的 CharMatcher charMatcher3 = CharMatcher.none(); // 匹配空白字符的 CharMatcher charMatcher4 = CharMatcher.whitespace(); CharMatcher charMatcher4_1 = CharMatcher.breakingWhitespace(); // 匹配单个字符 CharMatcher charMatcher5 = CharMatcher.is('a'); CharMatcher charMatcher6 = CharMatcher.isNot('a'); // 匹配范围 CharMatcher charMatcher7 = CharMatcher.inRange('0', '9'); CharMatcher charMatcher8 = CharMatcher.inRange('a', 'z'); CharMatcher charMatcher9 = CharMatcher.inRange('A', 'Z');
使用 CharMacher
根据函数的返回值和名称将这些方法分为三类。
第一类是判定型函数,判断 CharMacher 和入参字符串的匹配关系。
// true boolean flag1 = CharMatcher.ascii().matchesAllOf("a"); System.out.println(flag1); // true boolean flag2 = CharMatcher.ascii().matchesAnyOf("哈哈a"); System.out.println(flag2); // true boolean flag3 = CharMatcher.ascii().matchesNoneOf("哈哈"); System.out.println(flag3);
第二类是计数型函数,查找入参字符串中第一次、最后一次出现目标字符的位置,或者目标字符出现的次数.
// 3 int count1 = CharMatcher.is('a').countIn("aaabc"); System.out.println(count1); // 1 int index1 = CharMatcher.is('a').indexIn("java"); System.out.println(index1); // 3 int index2 = CharMatcher.is('a').lastIndexIn("java"); System.out.println(index2);
第三类就是对匹配字符的操作。
// 123123 字符保留 String s1 = CharMatcher.inRange('0', '9').retainFrom("abc123abcde123"); System.out.println(s1); // abcabcde 字符移除 String s2 = CharMatcher.inRange('0', '9').removeFrom("abc123abcde123"); System.out.println(s2); // abcyyyabcdeyyy 字符替换字符 String s3 = CharMatcher.inRange('0', '9').replaceFrom("abc123abcde123",'y'); System.out.println(s3); // abc小明小明小明abcde小明小明小明 每一个字符替换成字符串 String s4 = CharMatcher.inRange('0', '9').replaceFrom("abc123abcde123","小明"); System.out.println(s4); // cat 去掉开头和结尾匹配的字符序列 String s5 = CharMatcher.anyOf("ab").trimFrom("abacatbab"); System.out.println(s5); // catbab 去掉开头匹配的字符序列 String s6 = CharMatcher.anyOf("ab").trimLeadingFrom("abacatbab"); System.out.println(s6); // abacat 去掉结尾匹配的字符序列 String s7 = CharMatcher.anyOf("ab").trimTrailingFrom("abacatbab"); System.out.println(s7); // cat 去掉开头和结尾匹配的字符序列 String s8 = CharMatcher.anyOf("ab").trimFrom("abacatbab"); System.out.println(s8); // hchth 将匹配字符序列替换折叠 String s9 = CharMatcher.anyOf("ab").collapseFrom("abacatbab",'h'); System.out.println(s9); // cht 去掉开头和结尾匹配的字符序列,中间的替换折叠 String s10 = CharMatcher.anyOf("ab").trimAndCollapseFrom("abacatbab",'h'); System.out.println(s10);

浙公网安备 33010602011771号