# 字符串

# 判空

System.out.println(Strings.isNullOrEmpty("")); // true
System.out.println(Strings.isNullOrEmpty(null)); // true
System.out.println(Strings.isNullOrEmpty("hello")); // false

# null转换为空串

System.out.println(Strings.nullToEmpty(null)); // ""

# 指定尾部补充

// 从尾部不断补充T只到总共8个字符,如果源字符串已经达到或操作,则原样返回。类似的有padStart
System.out.println(Strings.padEnd("hello", 8, 'T')); // helloTTT

# 字符匹配器CharMatcher 空白一一替换

// 空白回车换行对应换成一个#,一对一换
String stringWithLinebreaks = "hello world" +
        "ryou are here    take it       easy";
String s6 = CharMatcher.BREAKING_WHITESPACE.replaceFrom(stringWithLinebreaks,'#');
System.out.println(s6); // hello#world###you#are#here##take#it###easy

# 保留数字

String letterAndNumber = "1234abcdABCD56789";
// 保留数字
String number = CharMatcher.JAVA_DIGIT.retainFrom(letterAndNumber);
System.out.println(number);// 123456789

# 将集合转换为特定规则的字符串

ImmutableList<Integer> list = ImmutableList.of(1, 2, 3, 4, 5);
String join = Joiner.on("-").join(list);
System.out.println(join);

# 把map集合转换为特定规则的字符串

Map<String, Integer> map = Maps.newHashMap();
map.put("xiaoming", 12);
map.put("xiaohong",13);
String result = Joiner.on("\n").withKeyValueSeparator("=").join(map);
System.out.println(result);
// result为
// xiaoming=12
// xiaohong=13

# 将String转换为特定的集合

String str = "1-2-3-4-5-6";
List<String> list = Splitter.on("-").splitToList(str);
//list为  [1, 2, 3, 4, 5, 6]

# 去除空串与空格

 String str = "1-2-3-4-  5-  6   ";
List<String> list = Splitter.on("-").omitEmptyStrings().trimResults().splitToList(str);
System.out.println(list);//[1, 2, 3, 4, 5, 6]

# 将String转换为map

String str = "xiaoming=11,xiaohong=23";
Map<String,String> map = Splitter.on(",").withKeyValueSeparator("=").split(str);//{xiaoming=11, xiaohong=23}

# 多字符切割

String input = "aa.dd,,ff,,.";
List<String> result = Splitter.onPattern("[.|,]").omitEmptyStrings().splitToList(input);
System.out.println(result);//[aa, dd, ff]