ASCLL和字符串转换

今天用到ASCLL码和字符串之间的转化,在此记录分享一下。

首先提供一个方法,将字符串转换成为16进制的ASCLL码字符串,可以包含汉字、数字、标点符号等

    public static String str2HexStr(String s) {
        String str = "";
        for (int i = 0; i < s.length(); i++) {
            int ch = (int) s.charAt(i);
            String s1 = Integer.toHexString(ch);
            str += s1 + " ";
        }
        return str;
    }

然后提供一个方法,将16进制的ASCLL码字符串转换成为string类型字符串,可以包含汉字、数字、标点符号等

    public static String hexStr2Str(String s) {
        String[] asclls = s.split(" ");
        byte[] tmp = new byte[1];
        String result = "";
        for (int i = 0; i < asclls.length; i++) {
            try {
                if (Integer.valueOf(asclls[i], 16).intValue() > 255) {
                    result += (char) Integer.valueOf(asclls[i], 16).intValue();
                } else {
                    tmp[0] = (byte) (0xff & Integer.parseInt(asclls[i], 16));
                    result += new String(tmp, "utf-8");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }

最后测试一下

        String hexStr = str2HexStr("3、2、1,I love you, 中国!");
        System.out.println(hexStr);
        System.out.println(hexStr2Str(hexStr));

结果
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章