怎么把字符串转化为十六进制字符串 java
思路:用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值。
方法如下:
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();
}
调用方法如下:
String str = str2HexStr(“asbd”);
java byte转16进制
//将指定byte数组以16进制的形式打印到控制台
public
static
void
printHexString(
byte[]
b)
{
for
(int
i
=
0;
i
b.length;
i++)
{
String
hex
=
Integer.toHexString(b[i]
0xFF);
if
(hex.length()
==
1)
{
hex
=
‘0’
+
hex;
}
System.out.print(hex.toUpperCase()
);
}
}
byte转换16进制 java
public static final String toHex(byte b) {
return (“” + “0123456789ABCDEF”.charAt(0xf b 4) + “0123456789ABCDEF”.charAt(b 0xf));
}
这样比你那样方便多了 呵呵 用我给你的方法单个解析byte就可以了
java字符串转16进制
1、写转换函数是必须的,目前Jdk中无现有类。
2、在不同的字符编码当中,汉字的对应的数值或者说编码值不一样,像GBK、Unicode肯定是不一样的。以Java默认的Unicode为例说明问题。
3、 一,得到字符串,
二,遍历每个字符,用char来接收,实为int值,或直接用int也可以。
三,Integer.toHexString(每个字符对应的int值);
四,前缀加个“0x”就可以了。
4、如果是其它类型的话,找到对应的字符和数值对应表就可以了。
不知可否解决问题了。
java 16进制byte数组 转化成UTF-8格式字符串
一个16进制的byte数组转化成utf-8格式的字符串的方法有以下几种:
使用C语言,可以定义一个函数,将每个byte分成高4位和低4位,然后分别转换成对应的16进制字符,再拼接起来。
使用Java语言,可以使用Integer.toHexString()方法,将每个byte转换成两个16进制字符,再拼接起来。
使用Python语言,可以使用binascii.hexlify()方法,将byte数组转换成16进制字符串。
: 十六进制元素数组与字符串相互转换(C语言)_c语言16进制数组转换字符串_wangqingchuan92的博客-CSDN博客 : java中byte数组与十六进制字符串相互转换 – 腾讯云开发者社区-腾讯云 : python – How to convert a byte array to a hex string in Python? – Stack Overflow
java 以字符串获取的数组,怎么转成16位字符串?
你可以使用以下步骤将字符串 msg 转换为16进制字符串:
将字符串 msg 转换为字节数组,可以使用 Arrays.toString(msg.getBytes())
将字节数组中每个字节转换为 16 进制字符串,可以使用 Integer.toHexString(byteValue)
将转换后的字符串拼接起来得到最终的16进制字符串
例如:
byte[] bytes = msg.getBytes();
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
hexString.append(Integer.toHexString(b 0xff));
}
String result = hexString.toString();
注意:转换后的字符串可能会有一些前导0,如果需要去掉可以使用 string.replaceFirst(“^0+(?!$)”, “”)