String与char[],byte[]之间的转换

String与char[]之间的转换

char[]:字符数组
String的底层是char[]
String转换成char[]
调用String的toCharArray()返回char[]

	String str="abc123";
  	char[] chars=str.toCharArray();
  	for(int i=0;i<chars.length;i++) {
  		System.out.println(chars[i]);
  	}

char[]转换成String
调用String的构造器

    char[] arrs=new char[] {'h','e','l','l','o'};
  	String str=new String(arrs);
  	System.out.println(str);//hello

String与byte[]之间的转换

byte[]:字节数组
String转换成byte[],是编码的过程
注意: String转换成char[],不叫编码,因为还是能看懂转换后的数据

调用String的getBytes()返回byte[]
编码:字符串转换成字节(从看得懂的转化成看不懂的二进制数据)
解码:字节转化成字符串(从看不懂的二进制数据转换成看得懂的东西)

	String str="abc123中国";
  	byte[] bytes=str.getBytes();//使用默认的字符集进行转换(编码)
  	System.out.println(Arrays.toString(bytes));//[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]
  	
  	byte[] bytes1=str.getBytes("UTF-8");//使用UTF-8字符集进行编码
  	System.out.println(Arrays.toString(bytes1));//[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]  	

byte[]转换成String,是解码的过程
调用String的构造器

    String str="abc123中国";
  	byte[] bytes=str.getBytes();//使用默认的字符集进行编码
  	String str1=new String(bytes);//使用默认的字符集进行解码
  	System.out.println(str1);//abc123中国
  	
  	byte[] bytes1=str.getBytes("UTF-8");//使用UTF-8字符集进行编码
  	String str2=new String(bytes1);
  	System.out.println(str2);//输出结果为abc123涓浗,原因是bytes1编码的时候用的是UTF-8,解码的时候用的是默认的字符集,所以乱码
  	
  	//编码用的UTF-8,解码必须也用UTF-8才不会出问题
  	String str3=new String(bytes1, "UTF-8");//指定用UTF-8这种字符集进行解码
  	System.out.println(str3);//abc123中国

注意:解码使用的字符集和编码使用的字符集必须一致,否则会出现乱码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值