0

Javaの組み込み関数を使用して、16進数値を文字列に相当する形式に直接変換できる方法はありますか.

たとえば、次のようにします。

入力:「68656c70」

出力:「ヘルプ」

組み込み関数を使用して反対のことを行う方法は知っていますが、この問題には存在しますか???

4

3 に答える 3

3

ワンライナーで試してみる

String hex = "68656c70";
String text = new String(new BigInteger(hex, 16).toByteArray(), 0);
System.out.println(text);
于 2012-04-14T08:54:39.420 に答える
1

いいえ、そのような組み込み関数はありません。文字列を分割してparseInt(<bits>, 16);から、手動で char に変換する必要があります。

于 2012-04-14T08:31:17.093 に答える
0

組み込み関数はありませんが、これが役立つ場合があります。

import java.io.IOException;

public class RunT {

    public static void main(String[] args) throws IOException {
        try {

            String str = stringToHex("help");

            System.out.println(str);

            String str1 = convertHexToString(str);

            System.out.println(str1);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    static String stringToHex(String str) {
        char[] chars = str.toCharArray();
        StringBuffer strBuffer = new StringBuffer();
        for (int i = 0; i < chars.length; i++) {
            strBuffer.append(Integer.toHexString((int) chars[i]));
        }
        return strBuffer.toString();
    }

    public static String convertHexToString(String hex) {

        StringBuilder sb = new StringBuilder();
        StringBuilder temp = new StringBuilder();

        for (int i = 0; i < hex.length() - 1; i += 2) {
            String output = hex.substring(i, (i + 2));
            int decimal = Integer.parseInt(output, 16);
            sb.append((char) decimal);
            temp.append(decimal);
        }
        return sb.toString();
    }

}
于 2012-04-14T08:31:06.337 に答える