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);

 

posted @ 2021-05-29 20:56  程序员008  阅读(302)  评论(0)    收藏  举报