问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教JAVA怎么将十六进制转换为字符串,多谢

发布网友 发布时间:2022-04-25 22:47

我来回答

2个回答

热心网友 时间:2022-06-18 08:54

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());
}
亲测可行,支持中文!!!

热心网友 时间:2022-06-18 08:55

16进制转为10进制字符串
public static void main(String[] args) {
String str = "0123456789ABCDEF";
int data = 0xee; //十六进制数
int scale = 10; //转化目标进制

String s = "";
while(data > 0){
if(data < scale){
s = str.charAt(data) + s;
data = 0;
}else{
int r = data%scale;
s = str.charAt(r) + s;
data  = (data-r)/scale;
}
}

System.out.println(s);

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
情侣文案英文高级浪漫87句 Love to the people don't wave.什么意思 gladtomeetyou怎么 gladtomeetyou.怎么回答 2016生肖猴运程 武汉买房88平方满50万落户政策 非武汉市户口在武汉市购买70平方总价50万的商品房,可以转户口吗... 我想在武汉买一套50万左右的新房子,谁能告诉我现在武昌,关山,江夏,有... 支付宝怎么开通步数授权? 总价50万能在武汉买一套两室一天的二手房吗? Java字符串转16进制数组 java将两个字符串转为十六进制进行异或的结果是多少进制的,怎么做? java 将十进制转换成十六进制字符串 Java 16进制字符串转化成十六进制数字 用JAVA将十进制转换成十六进制 java,关于二进制和十六进制的数据转换 怎么把字符串转化为十六进制字符串 java java 字符串转十六进制,例如输入010216,转换后是0x01,0x020x10,就是每两位的去转?请大侠指教 java用%36,让十进制转换成36进制? 计算机的发展过程按使用器件分类可以分为哪五个阶段? 炒辣椒粉需要加哪些调料? 花椒中的小黑籽怎么吃? 青花椒油可以连花椒籽一道炸吗? 有大厨吗?花椒是泡水、油炸、磨粉那种味道最强??? 炸酥肉放十三香好还是花椒粉好 骨骨头摔裂怎么办 人工髋关节置换材料是陶瓷最好吗 髋臼骨折做牵引治疗要多久 血管更换术后脚肿是什么原因 关于换人造股关节 java编写十进制转换为十六进制 java十进制怎么转十六进制 java 字符串转utf-8的十六进制 java怎么把16进制的字符串转化为十进制 java的十进制怎么转为十六进制? JAVA:string类型转换int(16进制) 四川资阳最豪华,或最好的火锅店 小朋友问我四川火锅、重庆火锅谁历史更加悠久,怎么解释清楚? 资阳哪个店的火锅最好吃? 同样是辣火锅,四川火锅和重庆火锅的区别是什么? 最新四川十大火锅排名 在四川省资阳简阳市。两个人吃自助火锅在哪里吃最便宜,具体价格是多少。地址。。。。谢谢! 资阳市三只耳火锅在哪 计算机的发展分为那几个阶段? 为什么不能睡两张席子 为什么人们不喜欢垫两床席子在床上睡觉?是有什么忌讳吗? 有个能告诉我吗?为什么是在睡觉时不能用两个席子? 为什么人不能睡两张席子? 一张床可以垫两张凉席吗? 两床席子为什么不能睡