관리 메뉴

드럼치는 프로그래머

[JAVA] 16진수 문자열을 byte 배열로 변환 (혹은 그 역)하는 자바 코드 본문

★─Programing/☆─JAVA

[JAVA] 16진수 문자열을 byte 배열로 변환 (혹은 그 역)하는 자바 코드

드럼치는한동이 2013. 6. 24. 15:50

16진수 문자열 (Hex String)을 byte 배열로 변환하거나,

byte 배열을 16진수 문자열로 변환하는 자바 코드는 다음과 같다.

public class HexTest {
 
 public static byte[] hexToBytes(String hex) {
  byte[] result = null;
  if (hex != null) {
   result = new byte[hex.length() / 2];
   for (int i = 0; i < result.length; i++) {
    result[i] = (byte) Integer.parseInt(hex.substring(2 * i, 2 * i + 2), 16);
   }
  }
 
  return result;
 }
 
 public static String asHex(byte[] bytes) {
  StringBuffer sb = new StringBuffer(bytes.length * 2);
  for (int i = 0; i < bytes.length; i++) {
   if (((int) bytes[i] & 0xff) < 0x10) {
    sb.append('0');
   }
   
   sb.append(Integer.toString(bytes[i] & 0xff, 16));
  }
 
  return sb.toString();
 }
 
 public static void main(String[] args) {
  String hex = "0123456789ABCDEF";
 
  byte[] bytes = hexToBytes(hex);
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(bytes[i]);
  }
 
  System.out.println(asHex(bytes));
 }
 
}


결과는 다음과 같다.

1
35
69
103
-119
-85
-51
-17
0123456789abcdef


Reference:
http://stufftohelpyouout.blogspot.com/2008/10/hex-operations-in-java-convert-byte.html

 

[출처] http://devday.tistory.com/217

Comments