在Java中将字符串转换为十六进制

123

我正在尝试将类似于"testing123"的字符串在Java中转换为十六进制形式。我目前使用的是BlueJ。

将其转换回来是否也是一样的,只不过是反向操作?

23个回答

0

好多了:

public static String fromHexString(String hex, String sourceEncoding ) throws  IOException{
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    byte[] buffer = new byte[512];
    int _start=0;
    for (int i = 0; i < hex.length(); i+=2) {
        buffer[_start++] = (byte)Integer.parseInt(hex.substring(i, i + 2), 16);
        if (_start >=buffer.length || i+2>=hex.length()) {
            bout.write(buffer);
            Arrays.fill(buffer, 0, buffer.length, (byte)0);
            _start  = 0;
        }
    }

    return  new String(bout.toByteArray(), sourceEncoding);
}

0
new BigInteger(1, myString.getBytes(/*YOUR_CHARSET?*/)).toString(16)

-1

将字符串转换为其十六进制表示的简短便捷方法是:

public static void main(String... args){
String str = "Hello! This is test string.";
char ch[] = str.toCharArray();
StringBuilder sb = new StringBuilder();
    for (int i = 0; i < ch.length; i++) {
        sb.append(Integer.toHexString((int) ch[i]));
    }
    System.out.println(sb.toString());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接