【Java常用工具类汇总 2,零基础如何成为高级Java开发


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、代码实例

用分隔符将多个字符串(或数组元素)连接成一个字符串。

常用方法如下:

  1. on:用符号分隔

  2. splitToList:分隔为list

  3. omitEmptyStrings:去掉分隔后的空格

  4. trimResults():去除每一行的空格

  5. 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<String> makeList() {

    List<String> list = new ArrayList<String>();

    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<String> 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<String> 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<String> 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<String> list = makeList();

    System.out.println(String.join(",", list.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList())));//1,2,3

}

四、CharMatcher


常用方法如下:

  1. javaDigit:数字

  2. javaLowerCase:小写

  3. javaUpperCase:大写

  4. whitespace:空格

  5. matches:匹配,返回Boolean

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

image

image

Boolean

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

[外链图片转存中…(img-xpDR7KKX-1630922457620)]

[外链图片转存中…(img-ufzY3OuR-1630922457622)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值