String类型转换问题
/**
*
* 1.String---->基本数据类型、包装类:调用包装类的静态方法:parseXxx(str)
* 基本数据类型、包装类---->String:调用String重载的valueOf(xxx)
*
* 2.String 与char[]之间的转换
* String--->char[]:调用String的toCharArray()
* char[]--->String:调用String的构造器
*
* 3.String与byte[]之间的转换
* 编码:String--->byte[]:调用String的getBytes()
* 解码:byte[]--->String:调用String的构造器
*
*
* @author fu jingchao
* @creat 2021/10/30-19:55
*/
1 package com.atfu.java01; 2 3 import org.junit.Test; 4 5 import java.io.UnsupportedEncodingException; 6 import java.util.Arrays; 7 8 /** 9 * 10 * 1.String---->基本数据类型、包装类:调用包装类的静态方法:parseXxx(str) 11 * 基本数据类型、包装类---->String:调用String重载的valueOf(xxx) 12 * 13 * 2.String 与char[]之间的转换 14 * String--->char[]:调用String的toCharArray() 15 * char[]--->String:调用String的构造器 16 * 17 * 3.String与byte[]之间的转换 18 * 编码:String--->byte[]:调用String的getBytes() 19 * 解码:byte[]--->String:调用String的构造器 20 * 21 * 22 * @author fu jingchao 23 * @creat 2021/10/30-19:55 24 */ 25 public class StringTest1 { 26 @Test 27 //String--->char[]:调用String的toCharArray() 28 public void test1(){ 29 String str1 = "abc123"; 30 char[] charArray = str1.toCharArray(); 31 for (int i = 0; i < charArray.length; i++) { 32 System.out.println(charArray[i]); 33 } 34 System.out.println(charArray.getClass()); 35 System.out.println(str1); 36 System.out.println(str1.getClass()); 37 } 38 @Test 39 //char[]--->String:调用String的构造器 40 public void test2(){ 41 char[] arr = new char[]{'h','e','l','l','o'}; 42 String str2 = new String(arr); 43 System.out.println(str2); 44 System.out.println(arr.getClass()); 45 } 46 47 @Test 48 /* 49 //String与byte[]之间的转换 50 编码:String--->byte[]:调用String的getBytes() 51 解码:byte[]--->String:调用String的构造器 52 53 编码:字符串转换为字节数组(看得懂------>看不懂的二进制) 54 解码:字节数组转换为字符串 55 56 说明:解码时,要求解码使用的字符集必须与编码使用的字符集一致,否则会出现乱码。 57 */ 58 59 public void test3() throws UnsupportedEncodingException { 60 String str = "abc123中国"; 61 byte[] bytes = str.getBytes();//使用默认的编码集进行编码 62 System.out.println(Arrays.toString(bytes));//[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67] 63 64 byte[] gbks = str.getBytes("gbk");//使用gbk字符集进行编码 65 System.out.println(Arrays.toString(gbks));//[97, 98, 99, 49, 50, 51, -42, -48, -71, -6] 66 67 System.out.println("*************************"); 68 String str2 = new String(bytes);//使用默认的编码集进行解码 69 System.out.println(str2); 70 71 String str3 = new String(gbks); 72 System.out.println(str3);//出现乱码,原因:编码集和解码集不一致 73 74 String str4 = new String(gbks, "gbk"); 75 System.out.println(str4); 76 77 } 78 79 }
此为本人学习笔记,若有错误,请不吝赐教