怎么把十六进制转换成字符 java

如题所述

private static String hexString = "0123456789ABCDEF";
public static void main(String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode("中文")));
}
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str) {
// 根据默认编码获取字节数组
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
// 将字节数组中每个字节拆解成2位16进制整数
for (int i = 0; i < bytes.length; i++) {
sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
}
return sb.toString();
}

/*
* 将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
public static String decode(String bytes) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 将每2位16进制整数组装成一个字节
for (int i = 0; i < bytes.length(); i += 2)
baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString
.indexOf(bytes.charAt(i + 1))));
return new String(baos.toByteArray());
}
亲测可行,支持中文!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-20
十六进制?本来就是字符,才会区别十六进制或十进制

~~~~~

java十六进制值如何转换成字符串?
首先,通过Java控制台输入获取十六进制字符。使用Scanner类实现,代码如下:java import java.util.Scanner;public class HexToBinary { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);System.out.print("请输入一个十六进制字符: ");String hexChar = scanner....

java 16进制byte数组 转化成UTF-8格式字符串
使用C语言,可以定义一个函数,将每个byte分成高4位和低4位,然后分别转换成对应的16进制字符,再拼接起来。使用Java语言,可以使用Integer.toHexString()方法,将每个byte转换成两个16进制字符,再拼接起来。使用Python语言,可以使用binascii.hexlify()方法,将byte数组转换成16进制字符串。: 十六进制元素...

java如何把byte数组里的十六进制转换成int类型,如下图的数据,杂么转换...
package com.sdvdxl.other;public class Test {public static void main(String[] args) {byte[] bytes = new byte[] {0x00,0x53};for (byte b : bytes) {System.out.println(Integer.valueOf(b));}}}结果:0 83 PS : 使用的时候会自动转换成10进制的 ...

在java中,如何将utf8 十六进制编码转换成汉字?
String name = new String(b, "GB2312"); \/\/转换成GB2312字符 在知道流长度的情况下将输入流转换成字节数组 Java中的输入流抽象类InputStream有int read(byte[] b, int off, int len)方法,参数中byte[] b是用来存放从InputStream中读取的数据,int off指定数组b的偏移地址,也就是数组b的起始...

请教JAVA怎么将十六进制转换为字符串,多谢
private static String hexString = "0123456789ABCDEF";public static void main(String[] args) { System.out.println(encode("中文")); System.out.println(decode(encode("中文")));}\/* * 将字符串编码成16进制数字,适用于所有字符(包括中文) *\/public static String encode(String str...

十六进制字符串转换为十进制字符串
Java中,调用Integer.parseInt()方法指定十六进制基数为16进行转换,再用Integer.toString()方法将整数转为字符串。输出结果同样为"26"。C++中,使用std::stringstream类的hex格式进行十六进制解析,std::to_string函数将解析后的整数转换为字符串。确保包含sstream头文件,并在使用命名空间std或相应的函数前...

JAVA 怎么将16进制的数值转换成字符串?
给你个方向,代码自己写就可以了 每一个两位代表一个字节映射为java中的byte 整个就映射byte[]例如 byte[] bytes=new byte[长度]bytes[0]=0xF5;bytes[1]=0x00;bytes[2]=0x02;...以此类推 因为16进制数据实际上就是二进制数据,可以代表任何东西 所以这样的数据代表的源数据不一定是字符串,...

java16进制怎么转10进制
Java中将十六进制转换为十进制的步骤如下:1. 将十六进制数字字符串作为参数传递给Integer类的parseInt方法。该方法可以将十六进制字符串转换为对应的十进制整数。例如,要将十六进制字符串"A"转换为十进制,可以使用Integer.parseInt。其中,"A"是要转换的十六进制字符串,而第二个参数指定输入字符串是十六...

java两个十六进制数相连怎么表示
java两个十六进制数相连步骤如下:1、将两个十六进制数转换成字符串形式,可以使用Integer类的toHexString()方法。例如,如果第一个数是0x12,第二个数是0xAB,可以分别使用toHexString()方法将它们转换成字符串"12"和"ab"。2、将两个字符串拼接起来,可以使用字符串的加号运算符或concat()方法。例如...

java 中如果将一个十六进制字符串转化成一个ByteBuffer 比如0xFA...
\/\/ 在这个字节缓冲区中放入我们指定的 字符的字节数组,得到表示指定字符的ByteBuffer bytebuffer.put(str.getBytes());\/\/ 打印ByteBuffer所表示的一个字符 \/\/ 反转此缓冲区。首先将限制设置为当前位置,然后将位置设置为 0。bytebuffer.flip();System.out.println(new String(bytebuffer.array()))...

相似回答
大家正在搜