Java String转String[]字符串数组 String[]转List集合 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);
}
- 结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518162122356.png)
二、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);
- 结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519174125868.png)
方式二
- 方法: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操作,运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200612182219759.png)
三、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);
- 结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020051918094429.png)
- 注意使用 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);
- 结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519181651372.png)
五、String字符串转char[]字符数组
- 方法:String.toCharArray()
- 示例:
String str3 = "abcd";
char[] chars = str3.toCharArray();
System.out.println(chars);
- 结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519182140103.png)