java 数组、字符串、List之间的相互转换

一、Java中字符串与数组之间的转化

1、字符串->数组

  •      (1)转换成字符数组,java String 类中的toCharArray()方法将字符串转换为字符数组
String str = "123abc";
char[] arr = str.toCharArray();    // char数组
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);    // 输出1 2 3 a b c
}
  • (2)转换成字符串数组

如果字符串有空格,可以利用String.split()方法进行分割字符串,返回一个数组

String str = "123 abc";
String[] arr = str.split("");
for (int i = 0; i < arr.length; i++) { // String数组
    System.out.print(arr[i]); // 输出 1 2 3 a b c
}

使用 split() 方法注意如下:

  • 如果用“.”或“|”作为分隔的话,必须是如下写法,String.split("\\.") 或 String.split("\\|"),这样才能正确的分隔开,不能用 String.split(".") 或 String.split("|")。
  • 如果在一个字符串中有多个分隔符,可以用“|”作为连字符,如把“abc.123%efg”分割成abc,123,efg,可以这样写split(“\\.|%”);

  • (3)转换成byte数组,直接用getBytes()方法即可
String str = "123abc" ;
byte [] arr = str.getBytes();

2、数组->字符串

  • (1)char字符数组转换成字符串,使用String.copyValueOf(charArray)即可。也可以直接把char数组作为String对象初始化的函数生成或者使用String.valueOf(charArray)
char[] arr = { 'a', 'b', 'c' };
String string = String.copyValueOf(arr);
System.out.println(string); // 输出abc

String s1=new String(arr);
System.out.println(s1);

System.out.println("String.valueOf"+String.valueOf(arr));
  • (2)String字符串数组转换成字符串,先创建StringBuffer对象,然后append追加数组元素,在toString()即可
String[] arr = { "123", "abc" };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
    sb.append(arr[i]); // String并不拥有append方法,所以借助 StringBuffer
}
String sb1 = sb.toString();
System.out.println(sb1); // 输出123abc

二、数组与List之间的转换

1、数组->List

  • (1)可以直接使用Arrays类中的asList()方法,将数组转化为List,但是List不像ArrayList类一样,不能进行添加和移除操作,因为ArrayList类继承了List接口,并且重写了里面的抽象方法
String[] array = {"123","abc","xyz","666"};
		List<String> list = Arrays.asList(array);
		System.out.println("数组转化为列表:");
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i)+"  ");

输出结果:
数组转化为列表:
123  abc  xyz  666 
  • (2)也可以通过向ArrayList类中添加数组元素实现:
String[] array = {"123","456","abc","666"};
		ArrayList<String> list = new ArrayList<>();
		System.out.println("数组转化为列表:");
		for (int i = 0; i < array.length; i++) {
			list.add(array[i]);
			System.out.print(list.get(i)+"  ");
		}
		list.remove(3); //删除索引为3的值
		System.out.println("移除索引为3的值后,列表为:");
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i)+"  ");
		}
	
输出结果:

数组转化为列表:
123  456  abc  666  

移除索引为3的值后,列表为:
123  456  abc  

2、List->数组

  • (1)List,ArrayList中都有toArray()方法,可以将链表转化为数组,这里需要注意的是:toArray()方法内的如果没有参数返回的是object类型数组,如果要为string类型,则需要加:new String[list.size()];
ArrayList<String> list = new ArrayList<>();
		list.add("abc");
		list.add("123");
		list.add("456");
		String[] array = list.toArray(new String[list.size()]);
		System.out.println("将列表转化为数组:");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i]+"  ");
		}


输出结果:
将列表转化为数组:
abc  123  456

参考文章:https://blog.csdn.net/u014800380/article/details/52994913

                  http://c.biancheng.net/view/5872.html

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值