常用方法如下:
-
isNullOrEmpty:判断是否为空
-
emptyToNull:空转null
-
nullToEmpty:null转空
-
commonPrefix:获取两个字符串相同的开头部分
-
commonSuffix:获取两个字符串相同的结尾部分
-
padStart:为达到固定长度,在字符串前端补全某字符
-
padEnd:为达到固定长度,在字符串结尾补全某字符
-
repeat:重复某字符串若干次,并拼接在一起
private static void StringsTest() {
//isNullOrEmpty:判断是否为空
System.out.println(Strings.isNullOrEmpty(“”));//true
System.out.println(Strings.isNullOrEmpty(null));//true
System.out.println(Strings.isNullOrEmpty(“zs”));//false
//emptyToNull:空转null
System.out.println(Strings.emptyToNull(“”)); //null
//nullToEmpty:null转空
System.out.println(Strings.nullToEmpty(“zs”));//zs
System.out.println(Strings.nullToEmpty(“”));//
System.out.println(Strings.nullToEmpty(null));//
//commonPrefix:获取两个字符串相同的开头部分
System.out.println(Strings.commonPrefix(“abcdefg”, “asdf”));//a
System.out.println(Strings.commonPrefix(“abcdefg”, “qwer”));//
System.out.println(Strings.commonPrefix(“abcdefg”, “abcf”));//abc
System.out.println(Strings.commonPrefix(“abcdefg”, “abc”));//abc
//commonSuffix:获取两个字符串相同的结尾部分
System.out.println(Strings.commonSuffix(“abcdefg”, “abcfg”));//fg
//padStart:为达到固定长度,在字符串前端补全某字符
System.out.println(Strings.padStart(“zs”, 1, ‘*’));//zs,需要注意,这里不会返回s
System.out.println(Strings.padStart(“zs”, 2, ‘*’));//zs
System.out.println(Strings.padStart(“zs”, 3, ‘*’));//*zs
//padEnd:为达到固定长度,在字符串结尾补全某字符
System.out.println(Strings.padEnd(“zs”, 1, ‘*’));//zs,需要注意,这里不会返回s
System.out.println(Strings.padEnd(“zs”, 2, ‘*’));//zs
System.out.println(Strings.padEnd(“zs”, 3, ''));//zs
//repeat:重复某字符串若干次,并拼接在一起
System.out.println(Strings.repeat(“zs”, 2));//zszs
System.out.println(Strings.repeat(“java”, 3));//javajavajava
}
三、连接器 Joiner
1、代码实例
用分隔符将多个字符串(或数组元素)连接成一个字符串。
常用方法如下:
-
on:用符号分隔
-
splitToList:分隔为list
-
omitEmptyStrings:去掉分隔后的空格
-
trimResults():去除每一行的空格
-
trimResults(CharMatcher.JAVA_DIGIT):去掉每一行的数字
private static void test05() {
String str = “zs,ls, ww,gr”;
// 逗号分隔转为list
System.out.println(Splitter.on(“,”).splitToList(str));//[zs, , ls, ww, , , gr]
// 去掉分隔后的空格
System.out.println(Splitter.on(“,”).omitEmptyStrings().splitToList(str));//[zs, ls, ww, gr]
// 去除每一行的空格
System.out.println(Splitter.on(“,”).omitEmptyStrings().trimResults().splitToList(str));//[zs, ls, ww, gr]
String str2 = “zs,ls2, ww,zs”;
System.out.println(Splitter.on(“,”).omitEmptyStrings().trimResults().splitToList(str2));//[zs, ls2, ww, zs]
// 去掉每一行指定的字符
System.out.println(Splitter.on(“,”).omitEmptyStrings().trimResults(CharMatcher.javaDigit()).splitToList(str2));//[zs, ls, ww, zs]
// 既想去掉空格又想去掉数字,,,只去掉了数字
System.out.println(Splitter.on(“,”).omitEmptyStrings().trimResults().trimResults(CharMatcher.javaDigit()).splitToList(str2));//[zs, ls, ww, zs]
// 既想去掉空格又想去掉数字,,,只去掉了空格,,感觉trimResults不能连续使用,如果连续只会选择最后一个有效?
System.out.println(Splitter.on(“,”).omitEmptyStrings().trimResults(CharMatcher.javaDigit()).trimResults().splitToList(str2));//[zs, ls2, ww, zs]
/**
- on :map item之间分隔符
withKeyValueSeparator:定义map项的分隔符
*/
//转为指定格式字符串
System.out.println(Joiner.on(“;”).withKeyValueSeparator(“=”).join(ImmutableMap.of(“id”, “1”, “name”, “zs”)));//id=1;name=zs
//指定格式字符串转为map
System.out.println(Splitter.on(“;”).withKeyValueSeparator(“=”).split(“id=1;name=zs”));//{id=1, name=zs}
}
2、连接器 Joiner 小测试
小练习:
需求:
①有一个[1, , 2, null, 3]
②按逗号分隔,并去掉null和""
private static List makeList() {
List list = new ArrayList();
list.add(“1”);
list.add(“”);
list.add(“2”);
list.add(null);
list.add(“3”);
return list;//[1, , 2, null, 3]
}
static String delimiter = “,”;
//循环方式
private static void test01() {
List list = makeList();
StringBuilder builder = new StringBuilder();
for(String str : list) {
if(StringUtils.isNotEmpty(str)) {
builder.append(str+delimiter);
}
}
System.out.println(builder);//1,2,3,
builder.setLength(builder.length() - delimiter.length());
System.out.println(builder);//1,2,3
}
//Java8 stream方式
private static void test02() {
List list = makeList();
System.out.println(list.stream().filter(x -> StringUtils.isNotEmpty(x)).collect(Collectors.joining(“,”)));//1,2,3
System.out.println(list.stream().filter(StringUtils::isNotEmpty).collect(Collectors.joining(“,”)));//1,2,3
}
//Guava Joiner
private static void test03() {
List list = makeList();
System.out.println(Joiner.on(“,”).join(list));//java.lang.NullPointerException
System.out.println(Joiner.on(“,”).join(list.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList())));//1,2,3
}
// java.lang
private static void test04() {
List list = makeList();
System.out.println(String.join(“,”, list.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList())));//1,2,3
}
四、CharMatcher
常用方法如下:
-
javaDigit:数字
-
javaLowerCase:小写
-
javaUpperCase:大写
-
whitespace:空格
-
matches:匹配,返回Boolean
-
removeFrom:移除指定类型
-
retainFrom:除指定字符外全部移除
private static void test06() {
//判断是否是数字类型
System.out.println(CharMatcher.javaDigit().matches(‘1’));//true
System.out.println(CharMatcher.javaDigit().matches(‘z’));//false
//将某字符串的数字部分替换为某字符
System.out.println(CharMatcher.javaDigit().replaceFrom(“hello world666”, “1”));//hello world111
//javaLowerCase:小写
System.out.println(CharMatcher.javaLowerCase().matches(‘a’));//true
System.out.println(CharMatcher.javaLowerCase().matches(‘A’));//false
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
"));//hello world111
//javaLowerCase:小写
System.out.println(CharMatcher.javaLowerCase().matches(‘a’));//true
System.out.println(CharMatcher.javaLowerCase().matches(‘A’));//false
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
[外链图片转存中…(img-4L9eXJkf-1721161591315)]
还有更多面试复习笔记分享如下
[外链图片转存中…(img-UrKjQlMh-1721161591316)]