首页 >电脑教程 >电脑知识 >如何用JAVA将十六进制转换成字符串?感谢!

如何用JAVA将十六进制转换成字符串?感谢!

WBOY
WBOY转载
2024-01-16 09:30:14972浏览

如何用JAVA将十六进制转换成字符串?感谢!

如何用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

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

baos.write((hexString.indexOf(bytes.charAt(i))

.indexOf(bytes.charAt(i + 1))));

return new String(baos.toByteArray());

}

亲测可行,支持中文!!!有用请记得采纳

JAVA如何将16进制数字转换为ASCII中的字符串

使用这个方法可以传进去的16进制的数字组成的字符串转化为utf-8格式的字符串

public static String toStringHex1(String s) {

byte[] baKeyword = new byte[s.length() / 2];

for (int i = 0; i

try {

baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(

i * 2, i * 2 + 2), 16));

} catch (Exception e) {

e.printStackTrace();

}

}

try {

s = new String(baKeyword, "utf-8");// UTF-16le:Not

} catch (Exception e1) {

e1.printStackTrace();

}

return s;

}

C语言程序怎么把16进制转成字符:

我想你的问题只是将数字转换为字符对吧,那么我就不帮你做全文多行的源码了,我做了一行转换的,你可以再在外层嵌套一个循环,并使用二维数组来实现全文多行的ASCII码转换:

#include "Stdio.h"

#include "Conio.h"

int main(void)

{

int num[10],i=0;

while(getchar() != 'n')

{

getchar();

scanf("%x",&num[i]);

printf("%c",num[i]);

i++;

}

getch();

return 0;

}

原理是这样的:

你每次的四个字节的格式都是xyy的形式,我只要读入那个十六进制数就可以了,用scanf("%x",&num[i]);语句就可以读入十六进制数字,将一行的十六进制数在循环中全部取出存放在一维数组中。

在输出方面我投了个懒,直接读入就输出了,不过这个不是关键了,关键是以printf("%c",num[i]);语句输出,编译器就会自行把十六进制数转换为ascii码所对应的字符并输出。

现在你明白了么,就是以格式化的输入输出实现读入的是十六进制数,输出的是字符。(那两个getchar()是分别读入字符和x的哈~~)

怎么把16进制的ASC码转换成字符串的显示用python实现

#将16进制字符转成二进制字符

def str2byte(s):

base='0123456789ABCDEF'

i=0

s = s.upper()

s1=''

while i c1=s[i]

c2=s[i+1]

i+=2

b1=base.find(c1)

b2=base.find(c2)

if b1 == -1 or b2 == -1:

return None

s1+=chr((b1 return s1

s = 'C7 EB CE F0 BE C6 BA F3 BC DD B3 B5'.replace(' ','') #去掉空格

s1 = str2byte(s)

print s1.decode('gbk') #以gbk编码解码输出

#结果

>>>s1

'xc7xebxcexf0xbexc6xbaxf3xbcxddxb3xb5'

>>>print s1.decode('gbk')

请勿酒后驾车

以上是如何用JAVA将十六进制转换成字符串?感谢!的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:docexcel.net。如有侵权,请联系admin@php.cn删除