String与基本数据类型、包装类之间的转换
- String --> 基本数据类型、包装类:调用包装类的静态方法parseXxx(str)
public void ConvertTest1() {
String str1 = "123";
int num = Integer.parseInt(str1);
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
boolean b2 = Boolean.parseBoolean(str1);
System.out.println(num);// 123
System.out.println(b1);// true
System.out.println(b2);// false
}
- 基本数据类型 --> String
①调用String.valueOf(…)方法
②基本数据类型 + “”
public void ConvertTest2() {
int num = 123;
boolean b1 = true;
String s1 = String.valueOf(b1);
String s2 = String.valueOf(num);
String s3 = num + "";
System.out.println(s1);// true
System.out.println(s2);// 123
System.out.println(s3);// 123
}
- String --> char[] :调用String的toCharArray()
public void ConvertTest3() {
String str1 = "abc123";
char[] charArray = str1.toCharArray();
for (int i = 0; i < charArray.length; i++) {
System.out.println(charArray[i]);
}
System.out.println(charArray);// abc123
}
- char[] --> String:调用String的构造器
public void ConvertTest4() {
char[] charArray = { 'h', 'e', 'l', 'l', 'o' };
String str = new String(charArray);
System.out.println(str);// hello
}
- 编码:String --> byte[] (字节) :调用String的getBytes()(看懂的 --> 看不懂的二进制数值)
- 解码: byte[] --> String::调用String的构造器
- 说明:解码时,要求解码使用的字符集与编码时使用的字符集一致,否则会出现乱码
public void ConvertTest5() throws UnsupportedEncodingException {
String str1 = "abc123中国";
byte[] bytes = str1.getBytes();// 使用默认的字符集,进行编码
System.out.println(Arrays.toString(bytes));
byte[] gbks = str1.getBytes("gbk");// 使用gbk字符集,进行编码
System.out.println(Arrays.toString(gbks));
String str2 = new String(bytes);
System.out.println(str2);// abc123中国
String str3 = new String(gbks);
System.out.println(str3);// abc123�й� --> 乱码
String str4 = new String(gbks, "gbk");
System.out.println(str4);// abc123中国
}
[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]
[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]
abc123中国
abc123�й�
abc123中国