`

字符串和16进制互转

 
阅读更多

public static void main(String[] args)
    {
        System.out.println(encode("点对点文件共享大类"));
        System.out.println(decode("70B95BF970B965874EF651714EAB59277C7B"));
    }

    /*
     * 16进制数字字符集
     */
    private static String hexString = "0123456789ABCDEF ";

    /*
     * 将字符串编码成16进制数字,适用于所有字符(包括中文)
     */
    public static String encode(String str)
    {
        // 根据默认编码获取字节数组
        byte[] bytes = str.getBytes();
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        // 将字节数组中每个字节拆解成2位16进制整数
        for (int i = 0; i < bytes.length; i++)
        {
            sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
            sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
        }
        return sb.toString();
    }

    /*
     * 将16进制数字解码成字符串,适用于所有字符(包括中文)
     */
    public static String decode(String bytes)
    {
        ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
        // 将每2位16进制整数组装成一个字节
        for (int i = 0; i < bytes.length(); i += 2)
            baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1))));
        return new String(baos.toByteArray());
    }

分享到:
评论

相关推荐

    java 字符串转16进制Ascii

    总结一下,Java中字符串转16进制ASCII涉及的关键点有: 1. `char`类型的字符与ASCII码的转换。 2. 使用`Integer.toHexString()`将ASCII码转换为16进制字符串。 3. 处理Unicode字符时,需要考虑字符集和编码方式。 ...

    javascript实现的字符串与十六进制表示字符串相互转换方法

    之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6c6f); 得到的是hello &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Hex-Char Bi-Converter&...

    字符串与16进制数据互转

    在编程领域,尤其是在C#这样的强类型语言中,理解和掌握字符串与16进制数据的转换是一项基础且重要的技能。16进制是一种数值表示方式,通常用于存储和传输二进制数据,而字符串则是一种字符序列,常用于处理文本信息...

    字符串 16进制互转.rar

    这个"字符串 16进制互转.rar"压缩包文件显然提供了一个实用工具,可以帮助用户便捷地进行16进制和字符之间的转换。这个工具对于那些需要处理底层数据,如软件开发、数据分析或者网络通信的专业人士来说尤其有用。 ...

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    C# 进制转换的实现(二进制、十六进制、十进制互转)

    //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //输出: 1010 //十进制转十六进制字符串 Console.WriteLine(Convert.ToString(d,16)); //输出: a //二进制字符串转十进制数 string bin = "1010...

    字符与16进制互转工具

    综上所述,“字符与16进制互转工具”是基于VS2005开发的,具备处理ASCII、Unicode编码的字符(包括字母、数字和汉字)的能力,通过源码和使用说明书,用户可以学习到字符编码和16进制转换的相关知识,并利用工具进行...

    16进制Ascll与字符串相互转换

    如果有一串16进制数,例如'41 42 43',这表示ASCII码值65、66、67,分别对应'A'、'B'、'C'。将这些字符组合起来,就形成了字符串'ABC'。 字符串转16进制ASCII则相反,它需要对字符串中的每个字符进行16进制编码。...

    字符转16进制或16进制转字符工具

    字符与16进制互转工具,可以把字符转换为16进制内码,也可以把16进制的内码转换为字符。

    ASCII码字符串(十六进制)与字节数组的互转

    4. **十六进制表示**:在LabVIEW中,有时需要将字节数组表示为十六进制字符串,这对于数据的显示和记录很有用。可以使用“字节数组到十六进制字符串”函数,将每个字节转换为其对应的十六进制表示。 5. **自定义VI*...

    详解C++中十六进制字符串转数字(数值)

    详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用:  方法1: sscanf()  函数名: sscanf 功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,...

    汉字16进制互转

    总的来说,汉字16进制互转是编程中常见的字符编码转换问题,理解和掌握这种转换对处理涉及多语言尤其是汉字的项目至关重要。在VS2008中,利用C++的标准库可以方便地实现这个功能,而提供的类文件则提供了具体的实现...

    Delphi进制转换,十进制,二进制,十六进制,字符串--超短精简

    以上代码示例不仅覆盖了十进制、二进制、十六进制与字符串之间的转换,还体现了Delphi语言的灵活性和强大功能。通过这些精简而高效的函数,开发者能够轻松地在不同的数据类型间进行转换,这对于数据处理、算法设计或...

    16进制与ASCII互转

    当你有一串16进制数值,你可以将其转换为对应的ASCII字符。这个过程通常涉及到将每两个16进制数字(因为它代表8位二进制)转换为一个ASCII字符。例如,16进制数 "48" 对应于ASCII码的 "48"(十进制),在ASCII表中...

    Delphi源码 - 汉字转16进制编码

    了解并掌握这种汉字转16进制编码的工具,对于在斯凯平台上开发涉及到汉字编码处理的应用程序是非常有价值的,可以帮助开发者更好地理解和处理汉字在不同环境下的编码问题。同时,这也是对Unicode和16进制编码基础...

    java工具类 string转10进制sacii byte数组再转16进制字符数组再转16进制byte数组 string与BCD互转

    java工具类 : string转10进制sacii byte数组、 10进制sacii byte数组转16进制字符数组、 16进制字符数组转16进制byte数组、 string与BCD互转等方法,包含多个转换方法, 足够满足日常解包组包需求

    labview十六进制转二进制

    labview十六进制转二进制,输入字符串控件是十六进制显示!不是正常显示那种超级简单的转换!

    16进制数字串 与 ASCII字符串 互转

    免费共享小工具 实现十六进制数字串与ASCII字符串互转

    Java中3DES加密解密示例(封装byte数组16进制互转)

    Java 中的 3DES 加密解密示例(封装 byte 数组和 16 进制字符串互转) 在 Java 中,3DES 加密是一种常用的加密算法,它可以将明文数据转换为密文数据,以保护数据的安全性。在本示例中,我们将展示如何使用 3DES ...

    16进制和字符串互转工具

    这个“16进制和字符串互转工具”显然是一个用于协助这类转换的软件或插件。下面我们将详细探讨16进制和字符串转换的相关知识点。 首先,16进制是一种数字系统,基于16个符号,包括0-9的阿拉伯数字和A-F的字母,分别...

Global site tag (gtag.js) - Google Analytics