你把每个byte当成int,可以用Integer里的toHexString做到
解决方案 »
- jdbc里面的PreparedStatement问题,跪求高手解答
- 第一个jsp页面就遇到问题
- 我刚接触手机网站,wml参数怎么样传到jsp里面
- servlet提交问题,告诉赐招
- 无法运行servlet ,弄了一晚也没解决配制
- 我现在有一个网站,需要使用jsp+mysql来开发,想给私人做。谁来接
- 怎么能够迭代一排2个的数据?
- 无法再启动navicat for oracle 8.2
- 为什么quartz中CronTriggerBean的cronExpression设置不能再次按某天8点执行呢?
- tomcat为什么出错???
- 如何将原有的应用系统的用户管理模块和门户的管理模块相关结合??
- 如何将int=7;转换为字符型
代码1:
public class test {
public static void main(String[] arg) {
String s=new String("ABCDEFGHIJKL");
String ns="";
byte[] os=new byte[100]; byte[] b=s.getBytes();
for(int i=0;i<b.length;i++) {
ns+=Integer.toHexString(new Byte(b[i]).intValue());
}
System.out.println(ns);
System.out.println("------------------------------------------------"); byte[] bb=ns.getBytes();
byte[] bbb=new byte[2];
for(int i=0,j=0;i<ns.length();i+=2,j++) {
bbb[0]=bb[i];
bbb[1]=bb[i+1];
// os+=(byte)Integer.parseInt(new String(bbb));
os[j]=(byte)Integer.parseInt(new String(bbb));
}
System.out.println(new String(os));
}
}
编译通过,执行报错:NumberFormatException: 4a代码2:
public class test {
public static void main(String[] arg) {
String s=new String("ABCDEFGHIJKL");
String ns="";
String os=""; byte[] b=s.getBytes();
for(int i=0;i<b.length;i++) {
ns+=Integer.toHexString(new Byte(b[i]).intValue());
}
System.out.println(ns);
System.out.println("------------------------------------------------"); byte[] bb=ns.getBytes();
byte[] bbb=new byte[2];
for(int i=0,j=0;i<ns.length();i+=2,j++) {
bbb[0]=bb[i];
bbb[1]=bb[i+1];
os+=(char)Integer.parseInt(new String(bbb));
// os[j]=(byte)Integer.parseInt(new String(bbb));
}
System.out.println(new String(os));
}
}
编译通过,执行同样报:NumberFormatException: 4a
为什么会这样????
那么该如何转换呢?
StringBuffer buf = new StringBuffer(hash.length * 2);
int i; for (i = 0; i < hash.length; i++) {
if (((int) hash[i] & 0xff) < 0x10) {
buf.append("0");
}
buf.append(Long.toString((int) hash[i] & 0xff, 16));
}
return buf.toString();
}