HexFormat
HexFormat으로 16진수 문자열과 바이트 배열을 변환합니다.
코드 비교
✕ Java 8
// Pad to 2 digits, uppercase
String hex = String.format(
"%02X", byteValue);
// Parse hex string
int val = Integer.parseInt(
"FF", 16);
✓ Java 17+
var hex = HexFormat.of()
.withUpperCase();
String s = hex.toHexDigits(
byteValue);
byte[] bytes =
hex.parseHex("48656C6C6F");
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
양방향
하나의 API로 바이트→16진수, 16진수→바이트 변환을 수행합니다.
설정 가능
구분자, 접두사, 접미사, 대소문자를 설정합니다.
배열 지원
전체 바이트 배열을 한 번에 인코딩/디코딩합니다.
이전 방식
수동 16진수 변환
모던 방식
HexFormat
JDK 버전
17
난이도
중급
JDK 지원
HexFormat
사용 가능
JDK 17 LTS (2021년 9월) 이후 널리 사용 가능
동작 원리
HexFormat은 바이트, 정수, 배열에 대한 양방향 16진수 인코딩/디코딩을 제공합니다. 구분자, 접두사, 접미사, 대소문자를 설정할 수 있습니다. 더 이상 수동 형식 지정이나 파싱이 필요 없습니다.
관련 문서