Java에서 문자열을 16 진수로 변환
-
char
및Integer.toHexString()
배열을 사용하여 문자열을 16 진수로 변환 -
byte
배열 및 문자열 포맷터를 사용하여 문자열을 16 진수로 변환 - Apache Commons 코덱을 사용하여 문자열을 16 진수로 변환
이 기사에서는 예제와 함께 아래에 표시된 네 가지 방법을 사용하여 문자열을 16 진수 값으로 변환하는 방법을 알아 봅니다.
char
및Integer.toHexString()
배열을 사용하여 문자열을 16 진수로 변환
첫 번째 기술은 문자열을char
배열로 변환하는 것입니다. 먼저 문자를 추가하여 16 진수 값의 전체 문자열을 만드는 데 사용하는StringBuilder()
개체를 만듭니다. 문자열을char
배열로 변환하려면toCharArray()
명령을 사용합니다. 그 후, 우리는 하나의char
를 인자로 받아들이는 향상된 루프와Integer.toHexString()
메소드를 사용합니다.
함수Integer.toHexString()
은char
를 16 진수로 변환 한 다음stringBuilder.append()
메서드를 사용하여 문자열을 추가하고 출력에 표시합니다.
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "This is a string";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
StringBuilder stringBuilder = new StringBuilder();
char[] charArray = str.toCharArray();
for (char c : charArray) {
String charToHex = Integer.toHexString(c);
stringBuilder.append(charToHex);
}
System.out.println("Converted Hex from String: " + stringBuilder.toString());
}
}
출력:
Converted Hex from String: 54686973206973206120737472696e67
byte
배열 및 문자열 포맷터를 사용하여 문자열을 16 진수로 변환
이 예에서는 먼저getBytes()
함수를 사용하여 문자열을getBytesFromString
바이트 배열로 변환합니다. getBytes()
메소드 내에서 charset을 인수로 전달해야합니다. 바이트 배열을 가져 오면BigInteger
의 객체를 만들고 생성자에서int
값 1과 바이트 배열을 인수로 전달합니다.
String.format()
메소드를 사용하여bigInteger
오브젝트 값을 16 진 문자열로 형식화합니다. 16 진수 문자열을 얻으면 인쇄합니다.
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] getBytesFromString = str.getBytes(StandardCharsets.UTF_8);
BigInteger bigInteger = new BigInteger(1, getBytesFromString);
String convertedResult = String.format("%x", bigInteger);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
출력:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Apache Commons 코덱을 사용하여 문자열을 16 진수로 변환
문자열을 16 진수 Java로 변환하는 마지막 방법에서는 Apache Commons Codec 라이브러리를 사용합니다. 프로젝트에 라이브러리를 포함하기 위해 다음과 같은 Maven 종속성을 사용합니다.
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
마지막 예제와 마찬가지로이 프로그램에서 변환하려는 문자열에서byte
배열을 가져옵니다. 그런 다음 Apache Commons-Codec 라이브러리의Hex
클래스를 사용하고 정적 메소드encodeHexString()
을 호출하고byteArray
를 인수로 전달합니다. 그런 다음 16 진수로 변환 된 문자열을 반환합니다.
encodeHexString()
대신encodeHex()
함수를 사용할 수 있지만 문자열로 변환해야하는char
배열을 반환합니다. 그러나 결과는 동일합니다.
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Hex;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] byteArray = str.getBytes(StandardCharsets.UTF_8);
String convertedResult = Hex.encodeHexString(byteArray);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
출력:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn관련 문장 - Java String
- Java 문자열을 바이트로 변환하는 방법
- Java에서 16 진 문자열의 바이트 배열을 변환하는 방법
- Java에서 문자열 대 문자열 배열 변환을 수행하는 방법
- Java에서 문자열에서 부분 문자열을 제거하는 방법
- Java에서 임의 문자열 생성
- Java의 스왑 방법