1. 功能:处理字符串

2. 代码:

package com.example.google.guava.demo.string;import com.google.common.base.CharMatcher;/*** <p>* <code>CharMatcherTest</code>* </p>* Description:** @author Mcchu* @date 2017/10/23 12:14*/
public class CharMatcherTest {public static void main(String[] args) {// 1.获取字符串中数字String str1 = "mahesh123ff87f";String result1 = CharMatcher.digit().retainFrom(str1);System.out.println("1.获取字符串中数字:"+result1);// 2.把多个空格替换,并去掉首位的空格String str2 = "     Mahesh     Parashar  ";String result2 = CharMatcher.whitespace().trimAndCollapseFrom(str2, ' ');System.out.println("2.把多个空格替换,并去掉首位的空格"+result2);// 3.去掉转义字符(\t,\n,\b...)String str3 = " ab\tcd\nef\bg";String result3 = CharMatcher.javaIsoControl().removeFrom(str3);System.out.println("3.去掉转义字符"+result3);// 4.把所有的数字用"*"代替String str4 = "124abc85dds";String result4 = CharMatcher.javaDigit().replaceFrom(str4,"*");System.out.println("4.替换数字:"+result4);// 5.获取所有的数字和小写字母String str5 = "124abc85ddsAF1HNsd";String result5 = CharMatcher.javaDigit().or(CharMatcher.javaLowerCase()).retainFrom(str5);System.out.println("5.获取所有的数字和小写字母:"+result5);// 6.获取所有的大写字母String result6 = CharMatcher.javaUpperCase().retainFrom(str5);System.out.println("6.获取所有的大写字母:"+result6);// 7.获取所有单字节长度的符号String str7 = ",dg,123AH中国";String result7 = CharMatcher.singleWidth().retainFrom(str7);System.out.println("7.获取所有单字节长度的符号:"+result7);// 8.获取字母String str8 = "FirstName LastName +1 123 456 789 !@#$%^&*()_+|}{:\"?><";String result8 = CharMatcher.javaLetter().retainFrom(str8);System.out.println("8.获取字母:"+result8);// 9.获取字母和数字String result9 = CharMatcher.javaLetterOrDigit().retainFrom(str8);System.out.println("9.获取字母和数字:"+result9);// 10.出现次数统计Integer count10 = CharMatcher.any().countIn(str8);System.out.println("10.出现次数:"+count10);// 11.数字出现次数Integer count11 = CharMatcher.digit().countIn(str8);;System.out.println("11.数字出现次数:"+count11);// 12.获得除大写字母外其他所有字符String result12 = CharMatcher.javaLowerCase().negate().retainFrom(str8);System.out.println("12.获得除大写字母外其他所有字符:"+result12);//        CharMatcher本身提供了很多CharMatcher实现类,如下:
//        ANY: 匹配任何字符
//        ASCII: 匹配是否是ASCII字符
//        BREAKING_WHITESPACE: 匹配所有可换行的空白字符(不包括非换行空白字符,例如"\u00a0")
//        DIGIT: 匹配ASCII数字
//        INVISIBLE: 匹配所有看不见的字符
//        JAVA_DIGIT: 匹配UNICODE数字, 使用 Character.isDigit() 实现
//        JAVA_ISO_CONTROL: 匹配ISO控制字符, 使用 Charater.isISOControl() 实现
//        JAVA_LETTER: 匹配字母, 使用 Charater.isLetter() 实现
//        JAVA_LETTER_OR_DIGET: 匹配数字或字母
//        JAVA_LOWER_CASE: 匹配小写
//        JAVA_UPPER_CASE: 匹配大写
//        NONE: 不匹配所有字符
//        SINGLE_WIDTH: 匹配单字宽字符, 如中文字就是双字宽
//        WHITESPACE: 匹配所有空白字符//        CharMatcher is(char match): 返回匹配指定字符的Matcher
//        CharMatcher isNot(char match): 返回不匹配指定字符的Matcher
//        CharMatcher anyOf(CharSequence sequence): 返回匹配sequence中任意字符的Matcher
//        CharMatcher noneOf(CharSequence sequence): 返回不匹配sequence中任何一个字符的Matcher
//        CharMatcher inRange(char startInclusive, char endIncludesive): 返回匹配范围内任意字符的Matcher
//        CharMatcher forPredicate(Predicate<? super Charater> predicate): 返回使用predicate的apply()判断匹配的Matcher
//        CharMatcher negate(): 返回以当前Matcher判断规则相反的Matcher
//        CharMatcher and(CharMatcher other): 返回与other匹配条件组合做与来判断的Matcher
//        CharMatcher or(CharMatcher other): 返回与other匹配条件组合做或来判断的Matcher
//        boolean matchesAnyOf(CharSequence sequence): 只要sequence中有任意字符能匹配Matcher,返回true
//        boolean matchesAllOf(CharSequence sequence): sequence中所有字符都能匹配Matcher,返回true
//        boolean matchesNoneOf(CharSequence sequence): sequence中所有字符都不能匹配Matcher,返回true
//        int indexIn(CharSequence sequence): 返回sequence中匹配到的第一个字符的坐标
//        int indexIn(CharSequence sequence, int start): 返回从start开始,在sequence中匹配到的第一个字符的坐标
//        int lastIndexIn(CharSequence sequence): 返回sequence中最后一次匹配到的字符的坐标
//        int countIn(CharSequence sequence): 返回sequence中匹配到的字符计数
//        String removeFrom(CharSequence sequence): 删除sequence中匹配到到的字符并返回
//        String retainFrom(CharSequence sequence): 保留sequence中匹配到的字符并返回
//        String replaceFrom(CharSequence sequence, char replacement): 替换sequence中匹配到的字符并返回
//        String trimFrom(CharSequence sequence): 删除首尾匹配到的字符并返回
//        String trimLeadingFrom(CharSequence sequence): 删除首部匹配到的字符
//        String trimTrailingFrom(CharSequence sequence): 删除尾部匹配到的字符
//        String collapseFrom(CharSequence sequence, char replacement): 将匹配到的组(连续匹配的字符)替换成replacement
//        String trimAndCollapseFrom(CharSequence sequence, char replacement): 先trim在replace}
}

3. 输出结果:

1.获取字符串中数字:12387
2.把多个空格替换,并去掉首位的空格Mahesh Parashar
3.去掉转义字符 abcdefg
4.替换数字:***abc**dds
5.获取所有的数字和小写字母:124abc85dds1sd
6.获取所有的大写字母:AFHN
7.获取所有单字节长度的符号:,dg,123AH
8.获取字母:FirstNameLastName
9.获取字母和数字:FirstNameLastName1123456789
10.出现次数:54
11.数字出现次数:10
12.获得除大写字母外其他所有字符:FN LN +1 123 456 789 !@#$%^&*()_+|}{:"?><

附录:

参考:

http://www.yiibai.com/guava/guava_charmatcher.html

http://blog.csdn.net/victor_cindy1/article/details/52073155

Google Guava学习(10)-Guava字符串工具CharMatcher相关推荐

  1. Guava学习笔记 6. 字符串处理[Strings]

    非常有用的字符串工具,包括分割.连接.填充等操作 本文简单介绍了一下Guava的一些字符串工具 本文参考自: http://ifeve.com/google-guava-strings/ 并添加了一些 ...

  2. Google Guava学习笔记——基础工具类Joiner的使用

    Guava 中有一些基础的工具类,如下所列: 1,Joiner 类:根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 2,Spli ...

  3. 借Google Guava学习发现和开发通用功能模块

    如何发现通用的功能模块? 很多人觉得做业务开发没有挑战,实际上,做业务开发也会涉及很多非业务功能的开发,比如我们前面讲到的 ID 生成器.性能计数器.EventBus.DI 容器,以及后面会讲到的限流 ...

  4. Java类库Google Guava学习

    参考 官网 https://github.com/google/guava Google Guava官方教程(中文版) | 并发编程网 – ifeve.com 一篇让你熟练掌握Google Guava ...

  5. Guava学习笔记:Google Guava 类库简介

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

  6. [Google Guava] 2.4-集合扩展工具类

    原文链接 译文链接 译者:沈义扬,校对:丁一 简介 有时候你需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 ...

  7. Google guava学习

    文章目录 Google guava学习 一.摘要 二.优点 三.maven依赖 四.Guava API使用教程 五.GuavaCache本地内存缓存 六.布隆过滤器 Google guava学习 一. ...

  8. Google之GUAVA学习

    一.引入依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</ ...

  9. Guava学习笔记(转)

    Guava(瓜娃)学习笔记 Guava工程包含了若干被google的java项目广泛依赖的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitiv ...

  10. 免费学习编程的10个好工具

    互联网时代的快速发展,很多人都在学习编程技术,小编今天为大家推荐的就是学习编程技术会用到的一些编程工具,免费学习编程的10个好工具!希望能够帮助到正在学习的小伙伴们. 免费学习编程的10个好工具: 1 ...

最新文章

  1. 产品经理必备知识之如何用CREATE模型对用户进行行为分析
  2. Linux有关信息收集命令
  3. spring @lazy_Spring @Lazy批注用例
  4. UML之用例图(use case)箭头方向
  5. 源代码电影涉及的计算机思想,关于电影源代码的结局解释
  6. 大数据之-Hadoop3.x_Yarn_全流程作业---大数据之hadoop3.x工作笔记0143
  7. 为用户增加sudo权限(修改sudoers文件)
  8. golang java 对比_golang编程语言和java的性能对比
  9. lisp封装为vlx方法_LSP FAS VLX 文件自动加载方法
  10. linux下桌面编程软件,慧编程桌面端下载|慧编程桌面版 V1.2.0 Linux版 下载_当下软件园_软件下载...
  11. 深度解读“人类首次实现室温超导”:思路并无突破,中国并不落后-1
  12. 修改Android模拟器存储位置
  13. c语言桌面程序 touch unity,[Unity移动端]Touch类
  14. 记一篇IT培训日记061-班活动
  15. awd的批量脚本 pwn_CTF线下赛AWD套路小结
  16. 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)
  17. ShardingJDBC使用总结
  18. 微信公众号文章中的图片处理有哪些技巧?看这篇就够了。
  19. PLC的面向对象编程
  20. 大白话解析Context中的cancelCtx

热门文章

  1. 华为语音网关iad208e(m)华为8口语音网关web界面
  2. php百度蜘蛛劫持,PHP模拟百度蜘蛛,伪造IP爬行网站,附源代码
  3. 扫地机器人噪音响_扫地机器人噪音大的解决方法
  4. 【python】Torch not compiled with CUDA enabled
  5. 森林笔记之Qt:消息对话框(消息盒子)
  6. CRNN中英文字识别
  7. 美股,期货和国债随着大选进行中持续大幅度波动,华尔街如何看待这次结局?
  8. 双硬盘安装win7和Ubuntu双系统,解决系统启动引导问题
  9. 直接从国家统计局上找数据,并分析人口数据变化,做成可视化图
  10. 功耗:Leakage Power