CharMatcher
- //原字符串
- System.out.println(string);
- //去掉控制字符(\t,\n,\b...)
- System.out.println(CharMatcher.JAVA_ISO_CONTROL.removeFrom(string));
- //获取所有的数字
- System.out.println(CharMatcher.DIGIT.retainFrom(string));
- //把多个空格替换为一个包括\t,并去掉首位的空格
- System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom(string, ' '));
- //把所有的数字用"*"代替
- System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom(string, "*"));
- //获取所有的数字和小写字母
- System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom(string));
- //获取所有的大写字母
- System.out.println(CharMatcher.JAVA_UPPER_CASE.retainFrom(string));
- //获取所有单字节长度的符号
- System.out.println(CharMatcher.SINGLE_WIDTH.retainFrom(string));
- /*
- 原字符串:
- ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 你好 234啊 GES
- 去掉控制字符(\t,\n,\b...):
- ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 你好234啊 GES
- 获取所有的数字:
- 23234
- 把多个空格替换为一个包括\t,并去掉首位的空格:
- ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 你好 234啊 GES
- 把所有的数字用"*"代替:
- ROCKY rocky RoCkY ~!@#$%^&*() **(*&gS 你好 ***啊 GES
- 获取所有的数字和小写字母:
- rockyok23g234
- 获取所有的大写字母:
- ROCKYRCYSGES
- 获取所有单字节长度的符号:
- ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 234 GES
- */
ANY | NONE | WHITESPACE | BREAKING_WHITESPACE | INVISIBLE |
DIGIT | JAVA_LETTER | JAVA_DIGIT | JAVA_LETTER_OR_DIGIT | JAVA_ISO_CONTROL |
JAVA_LOWER_CASE | JAVA_UPPER_CASE | ASCII | SINGLE_WIDTH |
Charsets
当我们需要用到编码的时候我们应该用Charsets代替字符串使用,例如:
- //我们不应该这样写
- string.getBytes("UTF-8");
- //而应该这样写
- string.getBytes(Charsets.UTF_8);
- String str = "foRo-bar-- G qux";
- //使用char作为参数
- System.out.println(Splitter.on('-').split(str));
- //使用CharMatcher作为参数
- System.out.println(Splitter.on(CharMatcher.JAVA_UPPER_CASE).split(str));
- //使用正则表达式Pattern作为参数
- System.out.println(Splitter.on(Pattern.compile("[o-]")).split(str));
- //使用正则表达式字符串作为参数
- System.out.println(Splitter.onPattern("[o-]").split(str));
- /*
- 输出结果:
- [foRo, bar, , G qux]
- [fo, o-bar-- , qux]
- [f, R, , bar, , G qux]
- [f, R, , bar, , G qux]
- */
- //去掉空字符串
- System.out.println(Splitter.on('-').omitEmptyStrings().split(str));
- //去掉结果的首位空格
- System.out.println(Splitter.on('-').trimResults().split(str));
- //去掉结果首位的'o'字符
- System.out.println(Splitter.on('-').trimResults(CharMatcher.is('o')).split(str));
- //规定分割为多少个字符串
- System.out.println(Splitter.on('-').limit(2).trimResults().split(str));
- /*
- 输出结果:
- [foRo, obaro, qux]
- [foRo, obaro, , qux]
- [foR, bar, , qux]
- [foRo, obaro-- qux]
- */
Joiner
- //把集合用'-'合并为字符串
- System.out.println(Joiner.on('-').join(Arrays.asList(1,4,6)));
- //把多个Object用"*_*"合并为字符串
- System.out.println(Joiner.on("*_*").join("Tom","Jack","Rocky"));
- //把一个数组用" -_- "合并为字符串
- System.out.println(Joiner.on(" -_- ").join(new String[]{"cat","dog","pig"}));
- /*
- 输出结果:
- 1-4-6
- Tom*_*Jack*_*Rocky
- cat -_- dog -_- pig
- */
guava API: