String result = array.get(0);
for(int i = 1; i < array.size(); i++) {
result = result + "-" + item;
但是这个方法明显太繁琐,而且还需要判定各种异常情况,比如:如果数组size = 0,那么上面第一句话就会报错。
下面介绍两种方法,只需要一行就能实现字符串拼接操作,简便而且无需考虑很多情况。
1. 使用 org.apache.commons.lang.StringUtils 中的 join 函数。
StringUtils.join(array, "-")
2. 使用 Google Guava 中的 com.google.common.base.Joiner 类。
Joiner.on('-').join(array);
join() 括号中的参数既可以传入 Iterable<?>,又可以传入 @Nullable Object first, @Nullable Object second, Object... rest 。
Guava 对空指针有着严格的限制,如果传入的对象中包含空指针,Joiner 会直接抛出 NullPointer Exception。与此同时,Joiner 提供了两个方法,让我们能够优雅的处理待拼接集合中的空指针。
如果我们希望忽略空指针,那么可以调用 skipNulls 方法,得到一个会跳过空指针的 Joiner 实例。如果希望将空指针变为某个指定的值,那么可以调用 useForNull 方法,指定用来替换空指针的字符串。
Joiner.on(' ').skipNulls().join(1, null, 3); //1 3
Joiner.on(' ').useForNull("None").join(1, null, 3); //1 None 3
需要注意的是,Joiner 实例是不可变的,skipNulls 和 useForNull 都不是在原实例上修改某个成员变量,而是生成一个新的 Joiner 实例。
比如有一个数组是 String[] array = [ 'a', 'b', 'c' ],我希望把该数组中每个元素直接用 ' - ' 来拼接,得到 ”a-b-c",那么应该如何实现呢?最传统的办法就是:String result = array.get(0);for(int i = 1; i &lt; array.size(); i++) { result = result + ...
1. 使用 org.apache.commons.lang.StringUtils 中的join 函数。
StringUtils.join(array, "-")
2. 使用 Google Guava 中的 com.google.common.base.Joiner 类。
Joiner.on('-').join(array);
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Do.
将数组拼接成字符串,在JavaScript中,有两种方式。一种是Array对象提供的join()方法,另一种是Array对象提供的toString()方法。下面分别来介绍:
join()
定义和用法:
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
用法:把数组中的所有元素放入一个字符串,默认以逗号分隔
var arr = ['sun', 'moon', 'start']
console.log(arr.join()) // 'sun, moon, start'
元素是通过指定的分隔符进行分隔的。
用法:把数组中的所有元素放入一个字符串,默认以逗号分隔
let arr = ['xiaoyu', 'love', 'nega']
console.log(arr.join('-')) // 'xiaoyu-love-nega'
2. toString(
let arr = ['xiaoyu', 'love', 'nega']
console.log(
1. 前言
Java 提供了拼接 String 字符串的多种方式,不过有时候如果我们不注意 null 字符串的话,可能会把 null 拼接到结果当中,很明显这不是我们想要的。
在这篇文章中,将介绍一些在拼接 String 时避免 null 值的几种方式。
2. 问题复现
如果我们想要拼接 String 数组,可以简单的使用 + 运算符进行拼接,但是可能会..
List<String> ids = ImmutableList.of("1", "2", "3");
//直接用String.join
System.out.println(String.join(",", ids));
//使用 org.apache.commons.lang.StringUtils
System.out.println(StringUtils.join(array, ","));
//使用 Google Guava 中的 com.google.common.base.
let arr1 = ['张三','李四','王五','李四','赵六','张三'];
let arr2 = Array.from(new Set(arr1));
console.log(arr2)
输出结果:
['张三', '李四', '王五', '赵六']
2. 字符串分割成数组
str_name.split("分割条件","分割次数/默认全部")
let str1 = "张三,李四,王五,李
大字符串的连接最好使用数组,把每个子串放入数组元素,再执行join()连接起来,其效率比+=有明显的提高。 因此,可以由此原理写一个简单的 StringBuffer 类,在遇到大字符串连接时可以派上用场。 //by misshjn function StringBuffer(){ this.data = []; } StringBuffer.prototype.append = function(){ this.data.push(arguments[0]); return this; } StringBuffer.prototype.toString = function(
目录前言String字符串和char字符的区别拓展相互转换String字符串转换成char字符数组char字符转换成String字符串char字符数组转换成String字符串String类和StringBuffer类之间的转换拼接String字符串之间的拼接String字符串和char字符之间的拼接String字符串、char字符以及char字符数组之间的拼接在指定位置插入在String字符串的指定位置插入String字符串(或char字符或char字符数组)在char字符数组的指定位置插入char字符数组(或char字符或String字符串)增加或减少长度增加或减少char字符数组的长度增加
String类原生的字符串处理方法
short s=1;s=s+1;与short s=1;s+=1;的区别“+” 操作符是字符串拼接最常用的方法之一。编译的时候会把 “+” 操作符替换成了 StringBuilder 的 append 方法。StringBuilder 的 append 方法就是第二个常用的字符串拼接方法。源码如下:
这 3 行代码比较简单,看下父类 AbstractStringBuilder 的 append 方法:
①判断拼接的字符串是不是 null,如果是,当做字符串“null”来处理
int[] arr = {1, 2, 3, 4, 5};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
if (i < arr.length - 1) {
sb.append(", ");
String str = sb.toString();
输出字符串为:"1, 2, 3, 4, 5"
这里的代码将数组中的每个元素添加到 StringBuilder 对象中,并在每个元素之间添加逗号和空格。最后,调用 StringBuilder 的 toString() 方法将其转换为字符串。
也可以使用 Java 8 中的 Stream API 和 String.join() 方法来实现同样的功能:
int[] arr = {1, 2, 3, 4, 5};
String str = String.join(", ", Arrays.stream(arr).mapToObj(String::valueOf).toArray(String[]::new));
输出字符串为:"1, 2, 3, 4, 5"
这里的代码将数组转换为 IntStream,然后使用 mapToObj() 方法将每个整数映射为字符串,最后使用 String.join() 将所有字符串连接在一起,使用逗号和空格作为分隔符。
注意:如果数组为空或 null,上述代码将会返回空字符串。