1. 程式人生 > 其它 >String型別轉換問題

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 }
此為本人學習筆記,若有錯誤,請不吝賜教