1. 字符串操作 Strings
1.1 常用方法
@Test
public void test() {
String str = null;
boolean nullOrEmpty = Strings.isNullOrEmpty(str);
String s = Strings.nullToEmpty(null);
String s1 = Strings.emptyToNull("");
}
1.2 字符串填充
- padStart(String string, int minLength, char padChar)
- padEnd() 在尾部添加新字符串
String str = "abc";
String value = Strings.padStart(str, 5, 'A');
// AAabc
1.3 共同前缀/后缀
- commonPrefix()
- commonSuffix()
@Test
public void test() {
String aa = "abc123ef";
String bb = "abc444f";
String prefix = Strings.commonPrefix(aa, bb);
String suffix = Strings.commonSuffix(aa, bb);
}
2. 拆分器 Splitter
2.1 单字符分割
public static void main(String[] args) {
String str = ",a,,b,";
String[] split1 = str.split(',');
System.out.println(Lists.newArrayList(split1));
Iterable<String> split = Splitter.on(',')
.trimResults()
.omitEmptyStrings()
.split(str);
System.out.println(split);
List<String> list = Splitter.on(',').trimResults().omitEmptyStrings().splitToList(str);
}
2.2 多字符分割
String str = "A001, A002";
List<String> list = Splitter.on(", ").trimResults().omitEmptyStrings().splitToList(str);
2.3 正则分隔
@Test
public void test() {
Pattern pattern = Pattern.compile("\\d+");
String str = "A001B002EF";
List<String> list = Splitter.on(pattern).trimResults().omitEmptyStrings().splitToList(str);
// result: [A, B, EF]
}
3. 连接器 Joiner
String join = Joiner.on(",").skipNulls().join(Arrays.asList("A", "B", "", "C"));
String join2 = Joiner.on(",").skipNulls().join(Arrays.asList("A", "B", null, "C"));
4. CharMatcher
- CharMatcher 是个抽象类,通过一些工厂函数 is、anyOf 等创建对应的实例
- 工厂方法
- CharMatcher is(final char match)
- CharMatcher anyOf(final CharSequence sequence)
4.1 判定型函数
boolean result = CharMatcher.is('a').matchesAnyOf("aba");
4.2 计数型函数
int index = CharMatcher.is('a').indexIn("java");
int count = CharMatcher.is('a').countIn("java");
4.3 匹配字符
处理单字符:
CharMatcher.is(char)
CharMatcher. isNot(char)
String retainStr = CharMatcher.is('a').retainFrom("Java");
String str = CharMatcher.is('a').removeFrom("Java");
处理多字符:
CharMatcher.anyOf(CharSequence)
CharMatcher.noneOf(CharSequence)
@Test
public void test() {
String result = CharMatcher.anyOf("ab").removeFrom("abcdddabc");
// trim 匹配首尾字符
String result2 = CharMatcher.anyOf("ab").trimFrom("abcdddab");
String result3 = CharMatcher.anyOf("ab").trimLeadingFrom("abcdddab");
String result4 = CharMatcher.anyOf("ab").trimTrailingFrom("abcdddab");
}
4.4 预定义常量
// 移除控制字符(\t,\n,\b...)
String s = CharMatcher.javaIsoControl().removeFrom("ab\r\ner");
网友评论