byte[] 转Hex String
一、一个字符串转byte数组怎么转?
byte[] byteArray = String.getBytes();
二、又想把生成的数组转回字符串怎么办?
String covertString = new String(byteArray);
以上的轻松愉快仅限于字符串之间互转(适当的时候还要注意编码格式)。
三、如果一个的数值byte[]数组怎么转成字符串?例如:
byte[] byteArray = new byte[]{-60,60};
如果用new String(byteArray)直接转,会丢失负数信息(毕竟char的取值范围和byte的取值范围不一样)。
所以一个较好的策略是把byte信息转成16进制的字符串,方便再从16进制字符串转回byte数组。
3.1 byte[]转成Hex String
public static String byteArrayToHexStr(byte[] byteArray) {
if (byteArray == null) {
return null;
}
char[] hexArray = "0123456789ABCDEF".toCharArray();
char[] hexChars = new char[byteArray.length * ];
for (int j = ; j < byteArray.length; j++) {
int v = byteArray[j] & 0xFF;
hexChars[j * ] = hexArray[v >>> ];
hexChars[j * + ] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
3.2 Hex String转成byte[]
public static byte[] hexStrToByteArray(String str) {
if (str == null) {
return null;
}
if (str.length() == ) {
return new byte[];
}
byte[] byteArray = new byte[str.length() / ];
for (int i = ; i < byteArray.length; i++) {
String subStr = str.substring( * i, * i + );
byteArray[i] = ((byte) Integer.parseInt(subStr, ));
}
return byteArray;
}
byte[] 转Hex String的更多相关文章
- byte ---> hex String
public static String byte2HexString(byte[] b){ String ret = ""; ;i<b.lenght;i++){ Strin ...
- java byte to hex
String str; byte[] bs = null; bs =str.getBytes(); bs =str.getBytes("utf-8") java byte to ...
- Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string
//開始由于要实现跨平台.考虑过用curl封装c++的dll(android *.so)的方式,在c#Dllimport实现 //后来发现Unity3D本身支持http协议.且face++的api都是 ...
- 深入 JAVA里面关于byte数组和String之间的转换问题
把byte转化成string,必须经过编码. 例如下面一个例子: importjava.io.UnsupportedEncodingException; publicclass test{ pub ...
- C# byte[]数组和string的互相转化 (四种方法)
C# byte[]数组和string的互相转化 (四种方法) 第一种 [csharp] view plain copy string str = System.Text.Encoding.UTF8.G ...
- java byte数组与String的相互转换
String -> byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...
- how convert large HEX string to binary array ?
how convert large HEX string to binary I have a string with 14 characters . This is a hex represanta ...
- java byte数组与String互转
java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String ...
- C语言判断字符串是否是 hex string的代码
把写内容过程中经常用到的一些内容段备份一下,如下内容内容是关于C语言判断字符串是否是 hex string的内容. { static unsigned int hex2bin[256]={0}; me ...
随机推荐
- 使用SqlServer中的float类型时发现的问题
在做项目中,使用了float类型来定义一些列,如:Price,但是发现了很多问题1.当值的位数大于6位是float型再转varchar型的时候会变为科学技术法显示 此时只好将float型转换成n ...
- python3 UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in position 230: illegal multibyte sequence
最近在保存微博数据到(csv文件)时报错: UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in positio ...
- fatal error C1853: '<filename>' is not a precompiled header file
当编译c和c++混合的项目时,会出现如下类似的错误 fatal error C1853: '<filename>' is not a precompiled header file 解决方 ...
- ADO.Net 之 数据库连接池(二)
连接到数据库服务器通常由几个需要很长时间的步骤组成.必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前事 ...
- Oracle 之 表新增字段后修改字段顺序
工作中遇到:在为一个表新增字段后,新增字段在最后,想调整新增字段的位置. 1.原始方法: --新建临时表以存储正确的顺序 create table A_2 as select (column1,col ...
- [算法][LeetCode]Spiral Matrix
题目要求 Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spir ...
- Nor Flash启动和Nand Flash启动时Stepping stone都在哪?
当从Norflash启动时,Steppingstone被映射到地址 0x4000 0000 至 0x4000 0FFF: 当从Nandflash启动时,Steppingstone被映射到地址 0x00 ...
- tomcat之组成结构
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet containe ...
- JAVA线程dump的分析
Java 的线程 线程是指能独立于程序的其它部分运行的执行单元. JAVA语言能够很好的实现多线程的程序.我们在调试程序,或者在开发后期需要做性能调优的时候,往往也需要了解当前程序正在运行的线程的状态 ...
- SpringMVC的入门例子
MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数 ...