java各种数据类型的转换问题
2016-05-22 09:34
465 查看
最近做项目,遇到各种进制转换的问题,在这里做个总结,以便今后运用,也可跟大家一起分享。
1,字符串转换成16进制:
假设我有一个5位的字符串,我需要转化成16进制数来表示:
2,16进制转字符串:
3,十进制数转化成16进制数:
关键代码只有一行,但要注意在前面补0
4,16进制转化为10进制
可能还有跟2进制转换的需求,但在项目中没有碰到,暂时不做总结
1,字符串转换成16进制:
假设我有一个5位的字符串,我需要转化成16进制数来表示:
public static String toHexString(String s) { String str = ""; for (int i = 0; i < s.length(); i++) { //将s的第i位转换成对应数字表示 int ch = (int) s.charAt(i); //将数字转换成对应的16进制字符表示 String s4 = Integer.toHexString(ch); //每两个16进制之间补空格 str = str + s4+" "; } return str; }至于转换后有什么作用,运用场景在哪不是很明确,希望大家分享。
2,16进制转字符串:
// 转化十六进制编码为字符串 public static String hexToString(String s) { //定义一个长度为传入16进制长度一半的字节数组,为什么是一半自己考虑 byte[] baKeyword = new byte[s.length()/2]; for(int i = 0; i < baKeyword.length; i++) { try { //取两位16进制转化为整数,再将其转化为字节(与0xff相与的作用是将长度变为8位,满足1个字节的条件) baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16)); } catch(Exception e) { e.printStackTrace(); } } try { //将得到的字节用utf-8的形式转换为对应的字符 s = new String(baKeyword, "utf-8");//UTF-16le:Not } catch (Exception e1) { e1.printStackTrace(); } return s; }当得到一串16进制数时,我们希望得到这串数据中对应的字符可以用该方法。
3,十进制数转化成16进制数:
关键代码只有一行,但要注意在前面补0
public static String intToHexString(int getNum,int num){ //传入的参数为对应的10进制数和希望转化为多少字节(因为一个int型的数可能一字节表示不了) //将10进制转化为对应的16进制字符串,没有补0 String getHex=Integer.toHexString(getNum); //转化为1个字节长度 if(num==1){ if(getHex.length()==1){ getHex="0"+getHex; } return getHex; } //转化为2个字节长度 if(num==2){ if(getHex.length()==1){ getHex="000"+getHex; } if(getHex.length()==2){ getHex="00"+getHex; } if(getHex.length()==3){ getHex="0"+getHex; } return getHex.substring(0, 2)+" "+getHex.substring(2, 4); } //转化为3个字节长度 if(num==3){ if(getHex.length()==1){ getHex="00000"+getHex; } if(getHex.length()==2){ getHex="0000"+getHex; } if(getHex.length()==3){ getHex="000"+getHex; } if(getHex.length()==4){ getHex="00"+getHex; } if(getHex.length()==5){ getHex="0"+getHex; } return getHex.substring(0, 2)+" "+getHex.substring(2, 4)+" "+getHex.substring(4, 6); } return ""; }
4,16进制转化为10进制
int a=Integer.parseInt("A1", 16);
可能还有跟2进制转换的需求,但在项目中没有碰到,暂时不做总结
相关文章推荐
- Struts2的核心和工作原理
- Myeclipse生成项目toString
- Windows 安装JDK
- java ArrayList自动排序算法的实现
- Java注解二 自定义注解
- Timer 定时任务
- Java基础笔记(截止到面向对象思想)
- java学习笔记5.22多维数组以及对象和类
- java基础---->java中国际化的实现
- JDK环境变量配置
- java省市级联下拉菜单实例代码
- java异步方式实现登录
- 蚁群算法实现TSP(旅行商)问题(java)
- java中++的理解
- maven的安装配置以及在MyEclipse6.0中集成
- Struts2请求参数扩展名的配置
- 【GOF23设计模式】_原型模式JAVA233-234
- Mybatis:maven-spring实现
- Java链接sql:垃圾回收的陷阱
- 在mac系统安装eclipse与配置