guava-libraries之String介绍

guava-libraries之String介绍
CharMatcher
[java]  view plain copy
  1. //原字符串  
  2. System.out.println(string);  
  3.   
  4. //去掉控制字符(\t,\n,\b...)  
  5. System.out.println(CharMatcher.JAVA_ISO_CONTROL.removeFrom(string));  
  6.   
  7. //获取所有的数字  
  8. System.out.println(CharMatcher.DIGIT.retainFrom(string));  
  9.   
  10. //把多个空格替换为一个包括\t,并去掉首位的空格  
  11. System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom(string, ' '));  
  12.   
  13. //把所有的数字用"*"代替  
  14. System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom(string, "*"));  
  15.   
  16. //获取所有的数字和小写字母  
  17. System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom(string));  
  18.   
  19. //获取所有的大写字母  
  20. System.out.println(CharMatcher.JAVA_UPPER_CASE.retainFrom(string));  
  21.   
  22. //获取所有单字节长度的符号  
  23. System.out.println(CharMatcher.SINGLE_WIDTH.retainFrom(string));  
  24.           
  25. /* 
  26. 原字符串: 
  27.   ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS   你好 234啊   GES   
  28.  
  29. 去掉控制字符(\t,\n,\b...): 
  30.   ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS   你好234啊   GES   
  31.  
  32. 获取所有的数字: 
  33. 23234 
  34.  
  35. 把多个空格替换为一个包括\t,并去掉首位的空格: 
  36. ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 你好 234啊 GES 
  37.  
  38. 把所有的数字用"*"代替: 
  39.   ROCKY  rocky  RoCkY ~!@#$%^&*()      **(*&gS   你好 ***啊   GES   
  40.  
  41. 获取所有的数字和小写字母: 
  42. rockyok23g234 
  43.  
  44. 获取所有的大写字母: 
  45. ROCKYRCYSGES 
  46.  
  47. 获取所有单字节长度的符号: 
  48.   ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS      234   GES   
  49. */  
CharMatcher:
ANYNONEWHITESPACEBREAKING_WHITESPACEINVISIBLE
DIGITJAVA_LETTERJAVA_DIGITJAVA_LETTER_OR_DIGITJAVA_ISO_CONTROL
JAVA_LOWER_CASEJAVA_UPPER_CASEASCIISINGLE_WIDTH 


Charsets

当我们需要用到编码的时候我们应该用Charsets代替字符串使用,例如:
[java]  view plain copy
  1. //我们不应该这样写  
  2. string.getBytes("UTF-8");  
  3. //而应该这样写  
  4. string.getBytes(Charsets.UTF_8);  


Splitter

[java]  view plain copy
  1. String str = "foRo-bar-- G  qux";  
  2. //使用char作为参数  
  3. System.out.println(Splitter.on('-').split(str));  
  4. //使用CharMatcher作为参数  
  5. System.out.println(Splitter.on(CharMatcher.JAVA_UPPER_CASE).split(str));  
  6. //使用正则表达式Pattern作为参数  
  7. System.out.println(Splitter.on(Pattern.compile("[o-]")).split(str));  
  8. //使用正则表达式字符串作为参数  
  9. System.out.println(Splitter.onPattern("[o-]").split(str));  
  10. /* 
  11. 输出结果: 
  12. [foRo, bar, ,  G  qux] 
  13. [fo, o-bar-- ,   qux] 
  14. [f, R, , bar, ,  G  qux] 
  15. [f, R, , bar, ,  G  qux] 
  16.  */  
Splitter的功能还有
[java]  view plain copy
  1. //去掉空字符串  
  2. System.out.println(Splitter.on('-').omitEmptyStrings().split(str));  
  3. //去掉结果的首位空格  
  4. System.out.println(Splitter.on('-').trimResults().split(str));  
  5. //去掉结果首位的'o'字符  
  6. System.out.println(Splitter.on('-').trimResults(CharMatcher.is('o')).split(str));  
  7. //规定分割为多少个字符串  
  8. System.out.println(Splitter.on('-').limit(2).trimResults().split(str));  
  9. /* 
  10. 输出结果: 
  11. [foRo, obaro,   qux] 
  12. [foRo, obaro, , qux] 
  13. [foR, bar, ,   qux] 
  14. [foRo, obaro--  qux] 
  15.  */  

Joiner

[java]  view plain copy
  1. //把集合用'-'合并为字符串  
  2. System.out.println(Joiner.on('-').join(Arrays.asList(1,4,6)));  
  3. //把多个Object用"*_*"合并为字符串  
  4. System.out.println(Joiner.on("*_*").join("Tom","Jack","Rocky"));  
  5. //把一个数组用" -_- "合并为字符串  
  6. System.out.println(Joiner.on(" -_- ").join(new String[]{"cat","dog","pig"}));  
  7. /* 
  8. 输出结果: 
  9. 1-4-6 
  10. Tom*_*Jack*_*Rocky 
  11. cat -_- dog -_- pig 
  12.  */  
相关连接:
guava API:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值