将数字、字符串转换成十六进制

tcmis 2009-08-14 11:41:39
在网上,CSDN也找了些,转换十六进制的但为什么同样的数字,字符转换成的十六进制结果不一样。不知道那个是正确的,
toHexString只能转换数据,那要写一个通用的,既能转换数字,也能转换字符的方法,该是怎么的,希望大侠能给个正确的转换十六进制的方法,谢谢。
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
上面有地方打错了.
Long.parseLong(str,radix),把radix进制的字符串str转为long.
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
用Long.parseLong(str,redix),可以把数字字符串str转为long ,
用toHexString,可以把long转为16进制的字符串,

有这两个足够了吧.
【如鱼饮水】 2009-08-14
  • 打赏
  • 举报
回复
星星

不管什么你都给它toString
再转
如何~
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
byte[] bytes=arg.getBytes();
关键是这句如果没有指定编码,用系统默认的编码,不同的编码,最后转成的Hex字符串不同。
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
//import java.util.*;

public class A {
public static void main(String []args) throws Exception{
String[] strs={"1","a","中文123"};
for(String str: strs){
System.out.println(str+":"+hexString(str));
}
}
public static String hexString(String arg){
byte[] bytes=arg.getBytes();
StringBuilder result=new StringBuilder();
for(byte b:bytes){
result.append(Integer.toHexString(b&0xff));
}
return result.toString();
}
}

F:\java>java A
1:31
a:61
中文123:d6d0cec4313233

F:\java>
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
中文怎么转啊,你是要字符串的unicode的16进制?

不是要256转为16进制是0x100?
tcmis 2009-08-14
  • 打赏
  • 举报
回复
能否给个代码例子看一下,我需要的是也能转换中文的。
tcmis 2009-08-14
  • 打赏
  • 举报
回复
中文也能行?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧