Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 문자열을 16진수로 또는 그 반대로 변환하는 방법은 무엇입니까?

<시간/>

16진수로 문자열

toHexString() Integer 클래스의 메서드는 정수를 매개변수로 받아들이고 16진수 문자열을 반환합니다. 따라서 문자열을 16진수 문자열로 변환하려면 -

  • 원하는 문자열을 가져옵니다.

  • 빈 StringBuffer 개체를 만듭니다.

  • toCharArray()를 사용하여 문자 배열로 변환합니다. String 클래스의 메소드.

  • 루프를 사용하여 위에서 만든 배열의 내용을 탐색합니다.

  • 루프 내에서 배열의 각 문자를 정수로 변환하고 toHexString()에 매개변수로 전달합니다. Integer 클래스의 메서드입니다.

  • StringBuffer 클래스의 append() 메서드를 사용하여 결과 값을 StringBuffer 객체에 추가합니다.

  • 마지막으로 toString()을 사용하여 StringBuffer 객체를 문자열로 변환합니다. 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();
      //Converting string to character array
      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:
Tutorialspoint
5475746f7269616c73706f696e74

16진수를 문자열로

16진수(String) 값을 String으로 변환하는 것과 같은 방식으로 -

  • 16진수 값(문자열)을 가져옵니다.

  • 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
Tutorialspoint