import java.util.Arrays;
public class StringTest {
public static void main(String[] args) throws Exception {
// String与字符数组之间的转换
// String --> char[]:调用String的toCharArray()
String str1 = "abc123";
char[] charArray = str1.toCharArray();
for (int i = 0; i < charArray.length; i++) {
System.out.print(charArray[i] + " ");
}
System.out.println();
// char[] --> String:调用String的构造器
char[] arr = new char[] {'h','e','l','l','o'};
String str2 = new String(arr);
System.out.println(str2);
// String与字节数组之间的转换
/*
* 编码:字符串 --> 字节(看得懂 --> 看不懂的二进制数据)
* 解码:编码的逆过程,字节 --> 字符串(看不懂的二进制数据 --> 看得懂)
*/
// String --> char[]:调用String的getBytes()
String str3 = "abc123中国";
byte[] bytes1 = str3.getBytes();// 使用默认的字符集,进行编码
System.out.println(Arrays.toString(bytes1));
byte[] bytes2 = str3.getBytes("utf-8");// 使用utf-8字符集进行编码
System.out.println(Arrays.toString(bytes2));
String str4 = new String(bytes1);// 使用默认的字符集,进行解码
System.out.println(str4);
String str5 = new String(bytes2);
System.out.println(str5);// 出现乱码。原因:编码集和解码集不一致!
String str6 = new String(bytes2,"utf-8");// 解决方法
System.out.println(str6);
}
}