[每天一个知识点]14-Java语言-字符串拼接

 2023-09-05 阅读 23 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 首发csdn,osc延后更新 在字符串处理操作中,非常常用的一个功能是将一个字符串数组或者字符串集合使用某种分隔符拼接为单一的字符串(需要注意拼接操作往往是不可逆的)。除了丑陋的自己写之外

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

首发csdn,osc延后更新

在字符串处理操作中,非常常用的一个功能是将一个字符串数组或者字符串集合使用某种分隔符拼接为单一的字符串(需要注意拼接操作往往是不可逆的)。除了丑陋的自己写之外,常用的方式还有下面几种:

1. Java8的String.join

2. Guava的Joiner

3. Apache commons-lang3的StringUtils

这3者都能实现最基本的功能,但是在细节上还是有很多不同,使用时值得注意选择。简要说起来主要区别如下:

1. Java8的String.join实现最简单,但是它会将null输出为"null"

2. Guava的Joiner提供的连贯接口,如果不指定如何处理null则遇到null时会抛出NPE,可以指定跳过null,也可以指定将null转换为何种字符串

3. Apache commons-lang3的StringUtils提供的方法直接将null转换为空字符串,对于数组输入可以指定只拼接其中一部分

下面是代码和对应的输出

package blog.java;  import java.util.Arrays;  
import java.util.List;  import org.apache.commons.lang3.StringUtils;  
import org.testng.annotations.DataProvider;  
import org.testng.annotations.Test;  import com.google.common.base.Joiner;  public class S14 {  @DataProvider  public Object[][] list() {  String[] array = { "a", "b", null, "c", "", "d" };  List<String> list = Arrays.asList(array);  return new Object[][] { new Object[] { array, list } };  }  @Test(dataProvider = "list")  public void testJava8Join(String[] array, List<String> list) {  // "a, b, null, c, , d"  System.out.println(String.join(", ", array));  // "a, b, null, c, , d"  System.out.println(String.join(", ", list));  }  @Test(dataProvider = "list")  public void testLang3StringUtils(String[] array, List<String> list) {  // "a, b, , c, , d"  System.out.println(StringUtils.join(array, ", "));  // "a, b, , c, , d"  System.out.println(StringUtils.join(list, ", "));  // "a, b, , c"  System.out.println(StringUtils.join(array, ", ", 0, 4));  }  @Test(dataProvider = "list")  public void testGuavaJoiner(String[] array, List<String> list) {  // java.lang.NullPointerException  System.out.println(Joiner.on(", ").join(array));  // java.lang.NullPointerException  System.out.println(Joiner.on(", ").join(list));  // "a, b, c, , d"  System.out.println(Joiner.on(", ").skipNulls().join(array));  // "a, b, c, , d"  System.out.println(Joiner.on(", ").skipNulls().join(list));  // "a, b, nullString, c, , d"  System.out.println(Joiner.on(", ").useForNull("nullString").join(array));  // "a, b, nullString, c, , d"  System.out.println(Joiner.on(", ").useForNull("nullString").join(list));  }  }


转载于:https://my.oschina.net/u/1762727/blog/371874

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/1578.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息