String与其他类型的转换

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);

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);

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));
        byte[] gbks = s1.getBytes("gbk");
        System.out.println(Arrays.toString(gbks));

        System.out.println("*********************");
        String s2 = new String(bytes);//使用默认的字符集进行解码
        System.out.println(s2);

        String s3 = new String(gbks);//用utf-8去解码gbk编的码,乱码
        System.out.println(s3);
posted @ 2021-04-07 12:09  袁中  阅读(187)  评论(0编辑  收藏  举报