String与常见的其他结构之间的转换

111 阅读1分钟

1. String与基本数据类型之间的转换

1.1 基本数据类型 -> String
int num = 10;
// 方法1
String s1 = num + "";
System.out.println(s1);
// 方法2
String s2 = String.valueOf(num);
System.out.println(s2);
1.2 String -> 基本数据类型
// String -> int
String s3 = "5235";
int i = Integer.parseInt(s3);
System.out.println(i);
// String -> double
String s4 = "5325.34";
double j = Double.parseDouble(s4);
System.out.println(j);
1.3 String与char[]之间的转换
String str = "hello";
// 1. String -> char[]:调用String的toCharArray()
char[] arr = str.toCharArray();
for(int i = 0; i < arr.length;i++){
    System.out.println(arr[i]);
}
//2. char[] -> String: 调用String的构造器
String str1 = new String(arr);
System.out.println(str1);
1.4 String与byte[]之间的转换
在utf-8字符集中,一个汉字占用3个字节,一个字母占用1个字节
在gbk字符集中,一个汉字占用2个字节,一个字母占用1个字节
String str = new String("abc");
//String -> byte[]:调用String 的 getBytes()(返回ASCⅡ值)
byte[] arr = str.getBytes();//使用默认字符集 utf-8
for (int i = 0; i < arr.length;i++){
    System.out.println(arr[i]);
}
// 方法2:调用String 的 getBytes(String charsetName)
byte[] arr1 = str.getBytes("gbk");
for (int i = 0; i < arr.length;i++){
    System.out.println(arr[i]);
}

编码与解码:
编码: string ---> 字节或字节数组
解码:字节或字节数组 ----> String要求: 解码时 使用的字符集必须与编码时使用的字符集一致!不一致,就会乱码。

//byte[] -> String:

byte[] arr = str.getBytes();
String str02 = new String(arr);//使用默认字符集 utf-8
System.out.println(str02)

String str03 = new String(arr,"gbk");
System.out.println(str03)