String与基本数据类型,包装类之间的转换。
String转换为基本数据类型,包装类:调用包装类的parseXxx(str)方法
String str1="456"; //string转换为int类型 int str2 = Integer.parseInt(str1); System.out.println(str2);
2.基本数据类型,包装类转换为String:调用String重载的valueOf(xxx)方法。
int str3=123; String str4 = String.valueOf(str3); System.out.println(str4);
3.String与char[]数组之间的转换
3.1.String转换为char[] 调用toCharArray()
String s1="helloworld"; char[] chars = s1.toCharArray(); for (int i = 0; i < chars.length; i++) { System.out.println(chars[i]); }
3.2.char[]数组转换为String 调用:String的构造器
char[] chars1 = {'h', 'e', 'l', 'l', 'o'}; String s2=new String(chars1); System.out.println(s2);
4.String与byte[] (字节数组)之间的相互转换
4.1.编码:
String 转换为 byte[] :调用String的getBytes()
String s1="ab1024程序员"; byte[] bytes = s1.getBytes();//使用默认的字符集进行转换,我的是UTF-8 System.out.println(Arrays.toString(bytes)); 输出结果:[97, 98, 49, 48, 50, 52, -25, -88, -117, -27, -70, -113, -27, -111, -104] try { byte[] gbks = s1.getBytes("gbk");//使用gbk字符集进行编码 System.out.println(Arrays.toString(gbks)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 输出结果:[97, 98, 49, 48, 50, 52, -77, -52, -48, -14, -44, -79] UTF-8 一个汉字代表三个字节 GBK中代表两个字节
4.2.解码:
byte[] 转换为 String :调用String的构造器
try { byte[] gbks = s1.getBytes("gbk");//使用gbk字符集进行编码 System.out.println(Arrays.toString(gbks)); String s2 = new String(bytes); System.out.println(s2); String s3 = new String(gbks);//因为这个没有使用默认的字符集,进行解码,所以导致乱码 System.out.println(s3); String gbk = new String(gbks, "gbk");//没有出现乱码,因为编码集和解码集一致! System.out.println(gbk); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 输出结果:ab1024����Ա ab1024程序员 ab1024程序员