java⼗六进制字符串转成byte数组字节数组,以及字节数组转
成16进制的字符串
java ⼗六进制字符串 转成 byte 数组/字节数组,以及 字节数组 转成 16进制的字符串:
// isEmpty
public static boolean isEmpty( String str ){
if( str == null || str.equals( "" ) ){
return true;
}else{
return false;
}
}
/
**
* 16进制的字符串表⽰转成字节数组
*
* @param hexString 16进制格式的字符串,注意字符之间不要有空格
* @return 转换后的字节数组
*/
public static byte[] toByteArray(String hexString){
if( isEmpty( hexString ) ){
throw new IllegalArgumentException("this hexString must not be empty");
}
hexString = LowerCase();
final byte[] byteArray = new byte[hexString.length() / 2];
int k = 0;
for( int i = 0; i < byteArray.length; i++ ){ //因为是16进制,最多只会占⽤4位,转换成字节需要两个16进制的字符,⾼位在先 byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
byteArray[i] = (byte) ( high << 4 | low);
k += 2;
}
return byteArray;
}
/**
* 字节数组转成16进制表⽰格式的字符串
*
* @param byteArray 需要转换的字节数组
* @return 16进制表⽰格式的字符串
*/
public static String toHexString(byte[] byteArray) {
if( byteArray == null || byteArray.length < 1 ){
throw new IllegalArgumentException( "this byteArray must not be null or empty" );
}
final StringBuilder hexString = new StringBuilder();
for( int i = 0; i < byteArray.length; i++ ){
if ( ( byteArray[ i ] & 0xff ) < 0x10 ) { //0~F前⾯不零
hexString.append( "0" );
数组转换成字符串}
hexString.append( HexString( 0xFF & byteArray[ i ] ) );
}
String().toLowerCase();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论