Java 字符串,byte[],16进制的字符串互转    /**
* 字符串转换成十六进制字符串
*/
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]);
}
return sb.toString();
}
/**
* 十六进制转换字符串
*/
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转换成十六进制字符串
*/
public static String byte2HexStr(byte[] b) {
String hs="";
String stmp="";
for (int n=0;n<b.length;n++) {
stmp=(Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
//if (n<b.length-1) hs=hs+":";
}
return hs.toUpperCase();
}
private static byte uniteBytes(String src0, String src1) {
byte b0 = Byte.decode("0x" + src0).byteValue();
b0 = (byte) (b0 << 4);
byte b1 = Byte.decode("0x" + src1).byteValue();
byte ret = (byte) (b0 | b1);
return ret;
}
/**
* bytes转换成十六进制字符串
*/
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] = uniteBytes(src.substring(i*2, m),src.substring(m,n));
}
return ret;
}
/**
*String的字符串转换成unicode的String
*/
public static String stringToUnicode(String strText) throws Exception {
char c;
String strRet = "";
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) {
strRet += "\\u" + strHex;
} else {
// 低位在前面补00
strRet += "\\u00" + strHex;
}
}
return strRet;
}
/**
*unicode的String转换成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转为int
int n = Integer.valueOf(s1, 16) + Integer.valueOf(s2, 16);
// 将int转换为字符
char[] chars = Character.toChars(n);
str.append(new String(chars));
}
return str.toString();
}

Java 字符串,byte[],16进制的字符串互转相关推荐

  1. 将unsigned char字符串以16进制的字符串显示

    在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别         首先在内存中,char与unsigned ch ...

  2. java进制转换、字符串与16进制互转/数字进制互转

    目录 十进制转其他进制 其他进制数字转十进制 字符串与16进制相互转换 十进制转其他进制 /*** 十进制转其他进制*/public static String conversion(Integer ...

  3. 【C#】C#中常用字符串转16进制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 在软硬件开发中,常常会遇到将字符串转16进制的需求,因为设备的中控 ...

  4. 将时间转换为16进制字符串或16进制小端模式byte数据

    1.将String类型的时间转换 1>String类型时间转换为Date类型的时间 2>时间转换为时间戳 3>时间戳转换为16进制字符串 4>16进制字符串转换为16进制小端模 ...

  5. java int to hex_Java字符串转16 进制工具类Hex.java | 学步园

    Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后 ...

  6. Unity C# 将String字符串转换为16进制Byte数组

    今天开发过程中后台给了我一个已经转成string了的16进制字符串,我这边做了些处理,将str又转回16进制,并以16位16进制byte数组的形式存放了. void Start(){string st ...

  7. java字符串转16进制

    蓝牙通信中,有时我们需要将字符串转为16进制再进行传输,转换方法如下 try {byte[] b = s.getBytes();String str = " ";for (int ...

  8. java 字符串和16进制的相互转换

    说明: 在将字符串转为16进制之前先进行一次转化,先将其转化成为Unicode编码(相当于把中文用英文字符代替),在转化成为16进制 相反的,在十六进制转换为字符串后的得到的是Unicode编码,此时 ...

  9. java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据

    做个笔记,在接收16进制数据的时候乱码了.原因是Socket在接收数据的时候需要根据不同的数据定义不同的接收方式,也就是约定好传输协议(具体体现在后面服务端接收16进制那里). 字符串的发送接收 字符 ...

最新文章

  1. Real World Haskell 第七章 I/O
  2. HighNewTech:18.11.07—第五届世界互联网大会—互联网届的奥斯卡大奖—15张PPT见证15项世界互联网领先科技成果
  3. LAMP(4)Apach和php结合、Apache默认虚拟主机
  4. 付力力: 基于 ImpalaS 构建实时用户行为分析引擎
  5. qt中new与delete使用示例
  6. ZZULIOJ 1105: 判断友好数对(函数专题)
  7. OkHttp3详细使用教程(2)
  8. notion自建服务器,最详细的NOTION功能模块列表
  9. 国庆宅家又羡慕别人的旅游美拍,教你一招轻松穿梭各大景点
  10. Google推出中文图书搜索简体中文试用版(zz)
  11. Android开发人员必看的资料
  12. Sketch for mac v78 矢量绘图软件
  13. 科来网络分析系统网络故障分析方法
  14. python测试脚本实例-python脚本测试
  15. python获取图像灰度极值点_【图像处理】灰度图、亮度峰值极值查找
  16. 计算机组成原理第一部: 计算机发展到加法器ALU的改进
  17. 【Solr】之使用结巴分词模拟搜索商品1
  18. java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
  19. hdf5 python_HDF5 文件及Python模块之h5py
  20. 【Baidu Apollo】基于人工驾驶路径的实时地图生成

热门文章

  1. 微信扫一扫识物的技术揭秘:抠图与检索
  2. GoLang:你真的了解 HTTPS 吗?
  3. 一文读懂数据库最新技术趋势:TDSQL带你深度纵览VLDB 2019
  4. centos安装ruby
  5. Python机器学习Numpy, Scipy, Pandas, Scikit-learn, Matplotlib, Keras, NN速查手册
  6. Ubuntu 16.04 把Dock放到桌面底部
  7. /etc/sysconfig/network-script/ifcfg-eth0究竟怎么填!!!
  8. 阿里巴巴计算平台资深技术专家“一浪”对大数据领域近几年的技术趋势和变化的看法【强烈推荐数据岗细细品!】
  9. Flume实操(四)【单数据源多出口案例(选择器)】
  10. HDFS二次开发常见问题