String Utils
Joiner
将一系列的字符串通过分隔符连接,可以通过方法跳过null,如果没有跳过会报NPE,也可以通过方法将null通过其他字符串代替
eg
Joiner joiner0 = Joiner.on(";").skipNulls();
Joiner joiner = Joiner.on(";").useForNull("null");
String res = joiner.join("Harry", null, "Ron", "Hermione");
System.out.println(res);
String info = Joiner.on(",").join(Arrays.asList(1, 5, 7));
System.out.println(info);
Splitter
jdk中有类似的分割方法,String.split 或者StringTokenizer
Splitter.on(char)通过一个特殊的分割符分割Splitter.on(',')
Splitter.on(CharMatcher)通过设置相关匹配的字符进行分割
Splitter.on(CharMatcher.BREAKING_WHITESPACE)
Splitter.on(CharMatcher.anyof(";,."))
Spliter.on(String) Splitter.on(",")
Splitter.on(Pattern)
Splitter.onPattern(String) 通过特殊的通配符进行分割
Splitter.fixedLength(int),指定长度切割字符串
修饰方法
omitEmptyStrings 自动去掉空字符
eg
Splitter.on(",").omitEmptyStrings().split("a,c,,d");
trimResults() 去掉空白的字符等于 trimResults(CharMatcher.WHITESPACE)
eg
Splitter.on(",").trimResults(CharMatcher.whitespace()).split("a,b ,c , d");
trimResults(CharMatcher) 去除指定字符
limit (int) 停止分割,当指定的字符串返回
splitToList()可以获取一个列表,而不是Iterable
Map Splitters 使用特定的分割符分割字符串为Map形式
MapSplitter
CharMatcher
Charsets
String test="testString";
//不推荐这样
try {
test.getBytes("UTF-8");
}catch (Exception e){
}
//应该这样
test.getBytes(Charsets.UTF_8);
对于这行代码,应该使用guava中的Charsets,提供了6种基本的
charset,更加好用
CaseFormat
格式化
public void testCaseFormat() {
String result = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "LAUCH_TIME");
System.out.println(result);
}