如何在Java中将字符串转换为十六进制,反之亦然?

字符串到十六进制

Integer类的toHexString()方法接受一个整数作为参数,并返回一个十六进制字符串。因此,要将字符串转换为十六进制String-

  • 获取所需的字符串。

  • 创建一个空的StringBuffer对象。

  • 使用String类的toCharArray()方法将其转换为字符数组。

  • 使用循环遍历上面创建的数组的内容。

  • 在循环内,将数组的每个字符转换为整数,并将其作为参数传递给Integer类的toHexString()方法。

  • 使用append()StringBuffer类的方法将结果值附加到StringBuffer对象。

  • 最后,使用StringBuffer类的toString()方法将StringBuffer对象转换为字符串。

示例

import java.util.Scanner;
public class StringToHexadecimal {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a String value: ");
      String str = sc.next();
      StringBuffer sb = new StringBuffer();
      //将字符串转换为字符数组
      char ch[] = str.toCharArray();
      for(int i = 0; i < ch.length; i++) {
         String hexString = Integer.toHexString(ch[i]);
         sb.append(hexString);
      }
      String result = sb.toString();
      System.out.println(result);
   }
}

输出结果

Enter a String value:
Nhooo
5475746f7269616c73706f696e74

十六进制到字符串

以相同的方式将十六进制(字符串)值转换为字符串-

  • 获取十六进制值(字符串)。

  • 使用toCharArray()方法将其转换为字符数组。

  • 从数组中读取每两个字符,然后将它们转换为字符串。

  • 将以上获得的字符串解析为以16为底的整数,并将其转换为字符。

  • 将所有字符连成字符串。

示例

import java.util.Scanner;
public class HexadecimalToString {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a Hexadecimal value: ");
      String str = sc.next();
      String result = new String();
      char[] charArray = str.toCharArray();
      for(int i = 0; i < charArray.length; i=i+2) {
         String st = ""+charArray[i]+""+charArray[i+1];
         char ch = (char)Integer.parseInt(st, 16);
         result = result + ch;
      }
      System.out.println(result);
   }
}

输出结果

Enter a Hexadecimal value:
5475746f7269616c73706f696e74
Nhooo
猜你喜欢