冰天雪地跪求各路大神~~~~~~~~~~
一个String类型的字符串调用方法getBytes()获得byte类型后,怎么样才能够让getBytes()方法获得的byte类型值转换成String类型后,再次调用getBytes()方法,可以得到相同的值。。比如已知:
String str = "abc";
byte[] _str2 = str.getBytes();
如何才能让 _str2的值 转换为String类型后再次调用getBytes()方法得到的值与_str2相同呀?3600度托马斯回旋跪求各路大神了。小弟弄了接近一周了还没搞出来笨啊。

解决方案 »

  1.   


    public class Test {
    public static void main(String[] args) {
    String s = "123456abcABC中国";
    try {
    byte[] bs = s.getBytes("utf-8");
    String rs = new String(bs,"utf-8");
    System.out.println(rs);
    byte[] bbs = rs.getBytes("utf-8");
    System.out.println(bbs.length==bs.length);
    for (int i=0;i<bs.length;i++) {
    System.out.println(bs[i]==bbs[i]);
    }
    } catch (UnsupportedEncodingException e) {

    e.printStackTrace();
    }
    }
    }转换时指定一个编码方式就可以了
      

  2.   

    String str = "abc";
    byte[] _str2 = str.getBytes();
    String _str3= new String(_str2);
    byte[] _str4 = _str3.getBytes();
      

  3.   

    package org.test;public class Test { /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub /*
     * 如果输入字符串带有中文,最好指定字符集,如果只是英文输入也可以不指定字符集(默认即可)
     */
    String _str1 = "abc苹果";
    System.out.println("[_str1]" + _str1);
    byte[] _str2 = _str1.getBytes("utf-8");
    System.out.print("[_str2]");
    for (byte i : _str2) {
    System.out.print(i + ",");
    }
    // 使用new方法直接构造String就可以了
    String _str3 = new String(_str2, "utf-8");
    System.out.println();
    System.out.println("[_str3]" + _str3);
    byte[] _str4 = _str3.getBytes("utf-8");
    System.out.print("[_str4]");
    for (byte i : _str4) {
    System.out.print(i + ",");
    } }
    }输出结果:
    [_str1]abc苹果
    [_str2]97,98,99,-24,-117,-71,-26,-98,-100,
    [_str3]abc苹果
    [_str4]97,98,99,-24,-117,-71,-26,-98,-100,
      

  4.   

    文件流可以这么做吗?读取个文件,存进byte[]。。转成字符串。然后又把字符串转成byte[]。。
    输出流写出以后,文件还正常不正常。各位大神。我试验的结果是不正常。。谁能帮把忙