java十六進位制字串和字串互轉(支援中文)
阿新 • • 發佈:2018-12-31
*字串轉16進位制
/**
*
字串轉換成為16進位制(無需Unicode編碼)
*
@param str
*
@return
*/
public
static
String
str2HexStr(String str) {
char
[]
chars =
"0123456789ABCDEF"
.toCharArray();
StringBuilder
sb =
new
StringBuilder(
""
);
byte
[]
bs = str.getBytes();
int
bit;
for
(
int
i
=
0
;
i < bs.length; i++) {
bit
= (bs[i] &
0x0f0
)
>>
4
;
sb.append(chars[bit]);
bit
= bs[i] &
0x0f
;
sb.append(chars[bit]);
//
sb.append(' ');
}
return
sb.toString().trim();
}
*16進位制轉為字串/**
*
16進位制直接轉換成為字串(無需Unicode解碼)
*
@param hexStr
*
@return
*/
public
static
String
hexStr2Str(String hexStr) {
String
str =
"0123456789ABCDEF"
;
char
[]
hexs = hexStr.toCharArray();
byte
[]
bytes =
new
byte
[hexStr.length()
/
2
];
int
n;
for
(
int
i
=
0
;
i < bytes.length; i++) {
n
= str.indexOf(hexs[
2
*
i]) *
16
;
n
+= str.indexOf(hexs[
2
*
i +
1
]);
bytes[i]
= (
byte
)
(n &
0xff
);
}
return
new
String(bytes);
}