Java字符串hex转换

简介

在Java编程中,我们经常需要在字符串和十六进制之间进行转换。字符串是由字符序列组成的,而十六进制是一种表示数字的方式。在本文中,我们将介绍如何在Java中进行字符串和十六进制之间的转换,并提供代码示例和详细说明。

字符串转换为十六进制

要将字符串转换为十六进制,我们可以使用以下步骤:

  1. 将字符串转换为字符数组。
  2. 对每个字符进行十六进制转换,并将结果拼接成一个字符串。

下面是一个示例代码:

public class StringToHexConverter {
    public static String toHex(String str) {
        char[] chars = str.toCharArray();
        StringBuilder hex = new StringBuilder();
        for (char c : chars) {
            hex.append(Integer.toHexString((int) c));
        }
        return hex.toString();
    }
}

在上面的代码中,我们使用toCharArray()方法将字符串转换为字符数组,并使用StringBuilder类来构建十六进制字符串。对于每个字符,我们使用Integer.toHexString()方法将其转换为十六进制表示,并将结果附加到hex字符串中。最后,我们使用toString()方法将StringBuilder对象转换为字符串并返回。

十六进制转换为字符串

要将十六进制转换为字符串,我们可以使用以下步骤:

  1. 将十六进制字符串分割成两个字符的数组。
  2. 将每个字符数组转换为十六进制数值。
  3. 将十六进制数值转换为字符,并将结果拼接成一个字符串。

下面是一个示例代码:

public class HexToStringConverter {
    public static String toStr(String hex) {
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < hex.length(); i += 2) {
            String s = hex.substring(i, i + 2);
            int decimal = Integer.parseInt(s, 16);
            str.append((char) decimal);
        }
        return str.toString();
    }
}

在上面的代码中,我们使用StringBuilder类来构建字符串。我们使用一个for循环来遍历十六进制字符串的每两个字符,使用substring()方法将其分割成两个字符的数组。然后,我们使用Integer.parseInt()方法将每个字符数组转换为十六进制数值,并使用(char)将其转换为字符。最后,我们将字符附加到str字符串中,并使用toString()方法将StringBuilder对象转换为字符串并返回。

示例

我们来看一个完整的示例,用于演示字符串和十六进制之间的转换:

public class HexConversionExample {
    public static void main(String[] args) {
        String str = "Hello World!";
        String hex = StringToHexConverter.toHex(str);
        System.out.println("Hex representation of \"" + str + "\": " + hex);
        
        String convertedStr = HexToStringConverter.toStr(hex);
        System.out.println("Converted string from hex \"" + hex + "\": " + convertedStr);
    }
}

在上面的示例中,我们首先将字符串"Hello World!"转换为十六进制表示,并打印结果。然后,我们将十六进制字符串转换回原始字符串,并再次打印结果。

流程图

下面是字符串转换为十六进制的流程图:

flowchart TD
    A[开始] --> B{输入字符串}
    B --> C[将字符串转换为字符数组]
    C --> D{遍历字符数组}
    D --> E[将字符转换为十六进制]
    E --> F[拼接十六进制字符串]
    F --> G{遍历完所有字符}
    G --> H[返回十六进制字符串]
    H --> I[结束]

下面是十六进制转换为字符串的流程图:

flowchart TD
    A[开始] --> B{输入十六进制字符串}
    B --> C[遍历每两个字符]
    C --> D[将字符转换为十六进制数值]
    D --> E[将十六进制数值转换为字符]
    E --> F[拼接字符字符串]
    F --> G{遍历完所有字符}
    G --> H[返回字符串]