Joiner
字符串连接
// 跳过空值
String skipNulls = Joiner.on(",")
.skipNulls()
.join("张三", "李四", "王五");
System.out.println(skipNulls);//张三,李四,王五
String useNUll = Joiner
.on(",")
.useForNull("null") //空替换
.join("张三",null, "李四", "王五");
System.out.println(useNUll);//张三,null,李四,王五
Splitter
作用:字符串分隔
原因:JDK自带的split()函数,会默认忽略尾部的分隔符,StringTokenizer 会用五个空字符代替。
String[] split = ",a,,b,".split(","); // "", "a", "", "b"
Iterable<String> split1 = Splitter.on(',')
.trimResults()
.omitEmptyStrings()
.split("foo,bar,, qux");
System.out.println(split1.toString()); //[foo, bar, qux]
// 任意字符进行拆分
Iterable<String> split1 = Splitter.on(CharMatcher.anyOf(",;."))
.trimResults()
.omitEmptyStrings()
.split("foo,bar,, qux;23.,s");
API | 作用 | 示例 |
---|---|---|
Splitter.on(char) | Splitter.on(‘;’) | |
Splitter.on(CharMatcher) | 以任意字符进行拆分 | Splitter.on(CharMatcher.BREAKING_WHITESPACE) Splitter.on(CharMatcher.anyOf(“;,.”)) |
Splitter.on(String) | Splitter.on(“, “) | |
Splitter.on(Pattern) | ||
Splitter.onPattern(String) | Splitter.onPattern(“\r?\n”) | |
Splitter.fixedLength(int) | Splitter.fixedLength(3) |
方法 | 描述 | 示例 |
---|---|---|
omitEmptyStrings() | Automatically omits empty strings from theresult. | Splitter.on(‘,’).omitEmptyStrings().split(“a,,c,d”)returns “a”, “c”, “d” |
trimResults() | Trims whitespace from the results; equivalent to trimResults(CharMatcher.WHITESPACE). | Splitter.on(‘,’).trimResults().split(“a, b, c, d”) returns “a”, “b”, “c”, “d” |
trimResults(CharMatcher) | Trims characters matching the specified CharMatcher from results. | Splitter.on(‘,’).trimResults(CharMatcher.is(‘‘)).split(“_a ,_b ,c__”) returns “a “, “b_ “, “c”. |
limit(int) | Stops splitting after the specified number of strings have beenreturned. | Splitter.on(‘,’).limit(3).split(“a,b,c,d”) returns “a”, “b”, “c,d” |
其它split方法
- splitToList
- splitToStream
CharMatcher
提供了字符串替换等操作
CharMatcher.is(‘a’).replaceFrom(“yaha”, “oo”) // return yoohoo
如果要调用的字符串只有一个字符,最好直接使用 replaceFrom(CharSequence, char)
Charsets
bytes = string.getBytes(Charsets.UTF_8);
CaseFormat
字符格式化
@Test
public void testCaseFormat () {
// 小驼峰 constantName
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "CONSTANT_NAME");
// 连接 constant-name
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, "CONSTANT_NAME");
// constant_name
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_UNDERSCORE, "CONSTANT_NAME");
// 大驼峰 ConstantName
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "CONSTANT_NAME");
// CONSTANT_NAME
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_UNDERSCORE, "CONSTANT_NAME");
}