자바에서 16진수 문자열을 byte array로 변환하는 법


지금 16진수로된 긴 문자열을 byte array로 변환하는 방법을 찾고있는데요.

"00A0BF"라는 문자열이 있으면 이걸 byte[]로 {0x00, 0xA0, 0xBF}로 바꾸고싶은데 어떻게 하면될까요? 전 자바초보자지만 다른 소스는 좀 더러워 보이고 좀 더 깔끔한 소스를 찾고싶습니다.

  • 2016년 01월 25일에 작성됨

조회수 371


1 답변


좋아요
0
싫어요
채택취소하기
public static byte[] hexStringToByteArray(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i += 2) {
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                             + Character.digit(s.charAt(i+1), 16));
    }
    return data;
}

이렇게 해보세요.

  • 2016년 01월 25일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close