Java String转String[]字符串数组,String[]转List集合,List集合转String,char[]字符数组转String
一、String转String[]字符串数组
- 方法:String.split();
- split():根据匹配给定的正则表达式来拆分字符串,返回字符串数组(String[]);
- 注意:特殊字符的处理需要进行转义处理,如:"." 、""、"|";
- 示例:
String str = "1,2,3,4,5";
String[] split = str.split(",");
System.out.println("String[] 数组长度是:" + split.length);
for (String split1 : split) {
System.out.println(split1);
}
- 结果:
二、String[]转List集合
方式一
String[] str1 = {"1","2","3","4","5"};
List<String> oldList = Arrays.asList(str1);
List<String> newList = new ArrayList<>(oldList);
System.out.println("list 集合长度是:" + newList.size());
System.out.println(newList);
- 结果:
方式二
- 方法:CollUtil.newArrayList(T… values)或者CollUtil.newLinkedList(T… values)
- 注:这是hutool提供的工具类
- 示例:
String[] col= new String[]{"a","b","c","d","e"};
List<String> colList = CollUtil.newArrayList(col);
System.out.print("list中的元素为:");
colList.forEach(item->{
System.out.print( item+",");
});
System.out.println("");
System.out.println("-------------------------分割线-----------------------------");
System.out.print("list->add()操作:");
colList.add("我是新增f");
colList.forEach(item->{
System.out.print( item+",");
});
System.out.println("");
System.out.println("-------------------------分割线-----------------------------");
System.out.print("list->remove()操作:");
colList.remove("a");
colList.forEach(item->{
System.out.print( item+",");
});
System.out.println("");
});
- 从运行结果中可以看出,CollUtil.newArrayList返回的list可以直接进行add和remove操作,运行结果:
三、List转String
方式一
- 方法:Convert.toStr(Object value)
- 注:这是hutool提供的工具类
- 示例:
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
String s = Convert.toStr(list);
System.out.println(s);
- 结果:
方式二
- 方法:来自Java8中的String.join(String, IEnumerable< T>)
- 示例:
String join = String.join(",", list);
System.out.println(join);
方法三
- 方法:遍历List,使用Stringbuild/StringBuffer进行拼接,然后转String
- 示例:
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (i == list.size()-1){
sb.append(list.get(i));
}else{
sb.append(list.get(i)).append(",");
}
}
String string = sb.toString();
System.out.println(string);
四、List转String[]集合
- 方法:list.toArray(T[] a);
- 示例:
List<String> list1 = new ArrayList<>(2);
list1.add("a");
list1.add("b");
String[] array = list1.toArray(new String[0]);
System.out.println(array);
- 结果:
- 注意使用 toArray 带参方法,数组空间大小length的取值说明:
1. 等于 0(new String[0]),动态创建与 size 相同的数组,性能最好。
2. 大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。 11/44 Java 开发手册
3. 等于 size(new String[list1.size()]),在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与上相同。
4. 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。
五、char[]字符数组转String
- 方法:String.valueOf(char data[]);
- 示例:
char[] charArr ={'a','b','c','d'};
String s = String.valueOf(charArr);
System.out.println("结果:"+s);
- 结果:
六、String字符串转char[]字符数组
- 方法:String.toCharArray()
- 示例:
String str3 = "abcd";
char[] chars = str3.toCharArray();
System.out.println(chars);
- 结果: