Java-String 和char[] 、byte[]之间的转换
1.String 和char[]之间的转换
package com.lmw.classtest;
import org.junit.Test;
/**
* @author
* @version 1.0.0
* @createTime 2022/5/15 22:23
* @description
*/
public class StringTest1 {
@Test
public void test() {
String str = "abc123";
// String转char型数组
char[] chaArray = str.toCharArray();
for (char c : chaArray) {
System.out.println(c);
}
//char型数组转String
char[] cha = new char[]{'h','e','l','l','o'};
String str2 = new String(cha);
System.out.println(new String(str2));
}
}
2.String和byte[]之间的转换
String>byte[]的过程叫编码
byte[]>String的过程叫解码,用什么字符集编码,就必须用什么字符集解码,不然就会乱码
package com.lmw.classtest;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
/**
* @author limingwei6
* @version 1.0.0
* @createTime 2022/5/15 22:23
* @description
*/
public class StringTest1 {
@Test
public void test() throws UnsupportedEncodingException {
System.out.println("---------------------编码----------------");
String str = "abc123中国";
// String转byte型数组 默认utf-8
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));
// 设置字符集 使用gbk字符串编码
byte[] gbks = str.getBytes("gbk");
System.out.println(Arrays.toString(gbks));
System.out.println("---------------------解码----------------");
//byte型数组转String 使用什么字符集编码的就用什么字符集解码
String str2 = new String(bytes);//使用默认字符集解码
System.out.println(str2);
String str3 = new String(gbks);
System.out.println(str3); // 出现乱码,原因是使用gbk编码但使用默认utf-8解码
System.out.println(new String(gbks,"gbk"));// 指定字符集
}
}