값이 0xE20x800x93
인 문자열이 있습니다. 이 같은 변환을 시도하고16 진수 문자열을 바이트로 변환
byte[] bs = new byte[]{
(byte) 0xE2,(byte) 0x80, (byte) 0x93
};
작동하지만 내가 원하는 것은 명시 적 캐스팅을하지 않고, 난 바이트 배열로 변환해야합니다.
또는 최소한 byte [] 객체가 아닌 byte 객체로 변환하는 방법.
값이 0xE20x800x93
인 문자열이 있습니다. 이 같은 변환을 시도하고16 진수 문자열을 바이트로 변환
byte[] bs = new byte[]{
(byte) 0xE2,(byte) 0x80, (byte) 0x93
};
작동하지만 내가 원하는 것은 명시 적 캐스팅을하지 않고, 난 바이트 배열로 변환해야합니다.
또는 최소한 byte [] 객체가 아닌 byte 객체로 변환하는 방법.
당신은 하나의 (이기는하지만 긴) 라인에서 작업을 수행 할 수 있습니다 이것은 가정
byte[] bytes = Arrays.copyOfRange(new ByteBuffer().putInt(Integer.parseInt(str.replace("0x", ""), 16)).array(), 1, 4);
당신이 얻을 정확히 3 바이트가 있습니다. 이 가변 길이의 경우는 최종 결과의 크기를 결정하기 위해 입력의 길이를 사용하기 때문에, 다음 코드는, 더 자세한 더 일반적인, 그러나 약간이다 : javax.xml.bind
패키지에서
byte[] bytes = Arrays.copyOfRange(new ByteBuffer().putInt(Integer.parseInt(str.replace("0x", ""), 16)).array(), 4 - str.length()/4, 4);
시도 DatatypeConverter.parseHexBinary(str)
을
+1 이것은 내가하는 방법입니다. –
당신은 것 문자열을 구문 분석 한 다음 값을 변환해야합니다. –
비트 7로 설정된 모든 바이트는 명시 적 캐스팅이 필요합니다. –