java中字符窜与16进制,byte之间的转换
来源:互联网 发布:专业软件开发学院 编辑:程序博客网 时间:2024/04/30 14:17
/**
* java String 与各种进制字符之间的转换
*
* @author
*/
public
class
Coding {
/**
* 字符串转换成十六进制值
* @param bin String 我们看到的要转换成十六进制的字符串
* @return
*/
public
static
String bin2hex(String bin) {
char
[] digital =
"0123456789ABCDEF"
.toCharArray();
StringBuffer sb =
new
StringBuffer(
""
);
byte
[] bs = bin.getBytes();
int
bit;
for
(
int
i =
0
; i < bs.length; i++) {
bit = (bs[i] &
0x0f0
) >>
4
;
sb.append(digital[bit]);
bit = bs[i] &
0x0f
;
sb.append(digital[bit]);
}
return
sb.toString();
}
/**
* 十六进制转换字符串
* @param hex String 十六进制
* @return String 转换后的字符串
*/
public
static
String hex2bin(String hex) {
String digital =
"0123456789ABCDEF"
;
char
[] hex2char = hex.toCharArray();
byte
[] bytes =
new
byte
[hex.length() /
2
];
int
temp;
for
(
int
i =
0
; i < bytes.length; i++) {
temp = digital.indexOf(hex2char[
2
* i]) *
16
;
temp += digital.indexOf(hex2char[
2
* i +
1
]);
bytes[i] = (
byte
) (temp &
0xff
);
}
return
new
String(bytes);
}
/**
* java字节码转字符串
* @param b
* @return
*/
public
static
String byte2hex(
byte
[] b) {
//一个字节的数,
// 转成16进制字符串
String hs =
""
;
String tmp =
""
;
for
(
int
n =
0
; n < b.length; n++) {
//整数转成十六进制表示
tmp = (java.lang.Integer.toHexString(b[n] &
0XFF
));
if
(tmp.length() ==
1
) {
hs = hs +
"0"
+ tmp;
}
else
{
hs = hs + tmp;
}
}
tmp =
null
;
return
hs.toUpperCase();
//转成大写
}
/**
* 字符串转java字节码
* @param b
* @return
*/
public
static
byte
[] hex2byte(
byte
[] b) {
if
((b.length %
2
) !=
0
) {
throw
new
IllegalArgumentException(
"长度不是偶数"
);
}
byte
[] b2 =
new
byte
[b.length /
2
];
for
(
int
n =
0
; n < b.length; n +=
2
) {
String item =
new
String(b, n,
2
);
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个进制字节
b2[n /
2
] = (
byte
) Integer.parseInt(item,
16
);
}
b =
null
;
return
b2;
}
public
static
void
main(String[] args) {
String content =
"EDF%&^%#_|~"
;
System.out.println(bin2hex(content));
System.out.println(hex2bin(bin2hex(content)));
}
}
0 0
- java中字符窜与16进制,byte之间的转换
- java中字符串与16进制,byte之间的转换
- java中字符串与16进制,byte之间的转换
- Java中字符和byte数组之间的相互转换
- Java中字符和byte数组之间的相互转换
- Java中字符和byte数组之间的相互转换
- [分享]Java中Byte与基础类型之间的转换
- [分享]Java中Byte与基础类型之间的转换
- Java中字符串与byte数组之间的相互转换
- Java中String与Byte之间的各种转换
- java int与byte【】之间的转换
- java中int与byte,以及long与byte之间的转换
- java 16进制 byte[]和int之间的转换
- java中字符串与字符数组之间的转换
- Java中String与byte[]的转换
- Java中String与byte[]的转换
- java中string与byte[]的转换
- Java中String与byte[]的转换
- 图片转base64串及反转回图片
- 数组指针和指针数组的区别
- xml的一个内部透明,带边框的背景,可用于按钮之类
- 源码剖析Iterator接口遍历和直接for-get组合遍历的区别
- Linux下SCP命令不输入密码(免密码)备份
- java中字符窜与16进制,byte之间的转换
- Combinations
- ajax解析返回数据
- MongoDB应用实践思考
- makefile 终极模板文件。此文在手,编译我有!
- 『IOS』ios 获取屏幕的属性和宽度
- Struts2嵌入式部署FineReport报表开发
- View工作原理【动画概述】
- boost源码剖析之:泛型函数指针类