9.2.String与其他类型的转换
1.String与基本数据类型,包装类之间的转换
String->基本数据类型,包装类 :调用包装类的静态方法:parsexxx(str)
基本数据类型,包装类 ->String:调用String重载的valueof(xxx)
String s1="123";
//String-->Integer
int num = Integer.parseInt(s1);
//Integer-->String
String s2 = String.valueOf(num);
System.out.println(s2);
2.String 与char[]之间的转换
String->char[]:调用String的toCharArray()
char[]->String:调用String的构造器
String s1="abc123";
//String-->char[]
char[] chars = s1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
//char[]-->String
String s2 = new String(chars);
System.out.println(s2);
3. String与byte[]之间的转换
编码:String->byte[]:调用String的getBytes()
解码:byte[]->String:调用String的构造器
String s1="abc123中国";//utf-8:三个字节一个汉字 gbk:两个字节一个汉字
//String-->byte[]
byte[] bytes = s1.getBytes();//使用默认的字符集进行编码
System.out.println(Arrays.toString(bytes));
4.String 与StringBuffer,StringBuilder的转换
String --->StringBuffer,StringBuilder:调用StringBuffer,StringBuilder的构造器
StringBuffer,StringBuilder--->String:
1)调用String的构造器;
2)StringBuffer,StringBuilder的toString()方法
String s1="abc";
//String--->StringBuffer,Stringbuilder
StringBuffer sb=new StringBuffer(s1);
//StringBuffer,StringBuilder--->String
String s2=new String(sb);