源代码下载地址: http://www.zuidaima.com/share/1550463378410496.htm

Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下。 这个工具类,就是实现此效果的。

/***/
package com.zuidaima.haohui.common.utils;/*** <pre>* 16进制值与String/Byte之间的转换 * @author JerryLi * @email lijian@dzs.mobi * @data 2011-10-16 * http://blog.csdn.net/hzbigdog/article/details/6877712* * http://www.blogjava.net/lijinglin/archive/2011/11/02/362567.html* </pre>* * @project baidamei* @author www.zuidaima.com* @create 2012-11-14 下午5:53:14*/
public class Hex {/*** 字符串转换成十六进制字符串* * @param String*            str 待转换的ASCII字符串* @return String 每个Byte之间空格分隔,如: [61 6C 6B]*/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();}/*** 十六进制转换字符串* * @param String*            str Byte字符串(Byte之间无分隔符 如:[616C6B])* @return String 对应的字符串*/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);}/*** bytes转换成十六进制字符串* * @param byte[] b byte数组* @return String 每个Byte值之间空格分隔*/public static String byte2HexStr(byte[] b) {String stmp = "";StringBuilder sb = new StringBuilder("");for (int n = 0; n < b.length; n++) {stmp = Integer.toHexString(b[n] & 0xFF);sb.append((stmp.length() == 1) ? "0" + stmp : stmp);
//          sb.append(" ");}return sb.toString().toUpperCase().trim();}/*** bytes字符串转换为Byte值* * @param String*            src Byte字符串,每个Byte之间没有分隔符* @return byte[]*/public static byte[] hexStr2Bytes(String src) {int m = 0, n = 0;int l = src.length() / 2;System.out.println(l);byte[] ret = new byte[l];for (int i = 0; i < l; i++) {m = i * 2 + 1;n = m + 1;ret[i] = Byte.decode("0x" + src.substring(i * 2, m) + src.substring(m, n));}return ret;}/*** String的字符串转换成unicode的String* * @param String*            strText 全角字符串* @return String 每个unicode之间无分隔符* @throws Exception*/public static String strToUnicode(String strText) throws Exception {char c;StringBuilder str = new StringBuilder();int intAsc;String strHex;for (int i = 0; i < strText.length(); i++) {c = strText.charAt(i);intAsc = (int) c;strHex = Integer.toHexString(intAsc);if (intAsc > 128)str.append("\\u" + strHex);else// 低位在前面补00str.append("\\u00" + strHex);}return str.toString();}/*** unicode的String转换成String的字符串* * @param String*            hex 16进制值字符串 (一个unicode为2byte)* @return String 全角字符串*/public static String unicodeToString(String hex) {int t = hex.length() / 6;StringBuilder str = new StringBuilder();for (int i = 0; i < t; i++) {String s = hex.substring(i * 6, (i + 1) * 6);// 高位需要补上00再转String s1 = s.substring(2, 4) + "00";// 低位直接转String s2 = s.substring(4);// 将16进制的string转为intint n = Integer.valueOf(s1, 16) + Integer.valueOf(s2, 16);// 将int转换为字符char[] chars = Character.toChars(n);str.append(new String(chars));}return str.toString();}public static void main(String[] args) {String hex = "ef2c71b29202f3e642f2abd8d518f367ec3fbf6a6a61beb678ae0c871ee368ac";System.out.println(Hex.hexStr2Str(hex));}
}

Java的String/byte[]/16进制相互转换相关推荐

  1. Java 字符串,byte[],16进制的字符串互转

    Java 字符串,byte[],16进制的字符串互转 /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char ...

  2. linux ascii与字符相互转换,ascii 字符串和16进制相互转换

    python 实现的 ascii 字符串和16进制相互转换,备忘一下.有时候转换个IP地址会用到. ''' _ooOoo_ o8888888o 88" . "88 (| -_- | ...

  3. Android byte与16进制相互转换

    1.解释 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写.与10进制的对应关系是:0-9对应0-9:A-F对应10-15. 字节(byte): java中一个 ...

  4. java中 8进制 10进制 2进制 16进制 相互转换

    十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...

  5. java 10进制 和16进制相互转换

    1 将java10进制数字转换为16进制 String hex= Integer.toHexString(numb); 2 将java 16进制字符转换为10进制数 BigInteger bigint ...

  6. java xor 运算 支持16进制以及 Ascii

    /*** java实现xor运算 * @param ascii* @param toUpCase* @return*/public static String xorAscii(String asci ...

  7. java实现二进制转16进制

    二进制转16进制 String str = "0110100111"; String s = Long.toHexString(Long.parseLong(str, 2)); S ...

  8. JS 颜色RGB转换为16进制 相互转换 方法

    /*RGB转换为16进制*/ const colorRgbToHex = (rgbStr: string) => {//十六进制颜色值的正则表达式constreg = /^#([0-9a-fA- ...

  9. string char* 16进制数字转化 unsigned char* 转化 字符串拼接

    项目中用到了16进制数字的转化 , 但是输出的是通过sha1加密,字符是两两转化为16进制数,要求是将其连接起来发送成一个字符串. 首先 要用到string时需要加载相关的头文件 #include & ...

最新文章

  1. 机器人视觉三维成像技术全解析
  2. python培训好学吗-人工智能“速成班”Python好学吗 小心别被忽悠了
  3. rsa python实现_RSA算法python实现
  4. android 字母排序,android – 按字母顺序排序列表
  5. JavaScript模态对话框类(拖拽时动画)
  6. 软件架构设计_软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧...
  7. 数字地和模拟地都是地,为什么要分开?
  8. 第二次冲刺-个人工作总结08
  9. ios上传图片文件到服务器,iOS 图片以文件形式上传到服务器
  10. Tomcat详解(十一)——Tomcat管理
  11. 【浙江大学PAT真题练习乙级】1001 害死人不偿命的(3n+1)猜想(15分)真题解析
  12. mongoVUE的增删改查操作使用说明
  13. python应用程序无法正常启动0xc0000142_电脑提示应用程序错误无法正常启动0xc0000142的解决办法...
  14. GitHub代码,资源下载慢?怎么办?
  15. Regionals 2015 Asia - Daejeon acmliveoj7233 - Polynomial
  16. 【51单片机】(手把手教你)串口通信-基础篇
  17. C++中strcmp的用法
  18. vue 中使用axios
  19. nexus-搭建私服--踩坑记
  20. 百度被黑了,哈哈!!

热门文章

  1. 记一次远程协助的排错案例
  2. .NET 2.0泛型集合类与.NET 1.1集合类的区别(一)
  3. 重新认识鸿鹄与燕雀的区别
  4. php读取doc pdf文件,PHP读取创建txt,doc,xls,pdf类型文件
  5. 机器学习监督学习之分类算法---朴素贝叶斯理论知识
  6. 深度学习 --- 随机神经网络详解(玻尔兹曼机学习算法、运行算法)
  7. 深度学习 --- BP算法详解(误差反向传播算法)
  8. linux vi 内存,Vi Linux内存 之 Slub分配器(四)
  9. 两个摄像头自动切换画面_你知道吗?你的手机摄像头之间会打架
  10. Java线程池线程突然没了_70%人答不全!线程池中的一个线程异常了会被怎么处理?...