如何将String.getBytes转换回原始String

时间:2014-05-03 16:46:25

标签: java encoding decoding

我使用以下方法编码字符串

public String encrypt(String data)
{             
        encoded = data.getBytes();
        String str_encoded = java.util.Arrays.toString(encoded);

        System.out.println("encoded:" + java.util.Arrays.toString(encoded));

        return str_encoded;
}

如何解码编码的字符串以取回原始字符串。

例如:" abc123"编码时将为[97, 98, 99, 49, 50, 51]

如何将[97, 98, 99, 49, 50, 51]解码回" abc123"

我确信它很简单,但我无法弄清楚

1 个答案:

答案 0 :(得分:1)

只需使用以下代码即可。创建一个byte[]并形成字符串。

String decoded = new String(new byte[]{97, 98, 99, 49, 50, 51});

完整代码:

String[] bytes = str_encoded.substring(1, str_encoded.length() - 1).split(", ");

byte[] bytesArray = new byte[bytes.length];
for (int i = 0; i < bytesArray.length; i++) {
    bytesArray[i] = Integer.valueOf(bytes[i]).byteValue();
}

String str_decoded = new String(bytesArray);
System.out.println(str_decoded);