「javahex转码」java hex转ascii
今天给各位分享javahex转码的知识,其中也会对java hex转ascii进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中 hex 转换成字符串 怎么转
- 2、java字符串转16进制
- 3、java hex 字符串怎么转换
- 4、java String字符串转UTF-8 hexcode怎么转?
- 5、Java如何将十六进制数转换为十进制数的自编程序
java中 hex 转换成字符串 怎么转
java中 hex 转换成字符串方法:
public class Test {
private static String hexString = "0123456789ABCDEFabcdef";
public static void main(String[] args) {
String msg= "亲,你好";
System.out.println(encode(msg));
System.out.println(decode(encode(msg)));
}
public static String encode(String str) {
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
//转换hex编码
for (byte b : bytes) {
sb.append(Integer.toHexString(b + 0x800).substring(1));
}
str = sb.toString();
return str;
}
//把hex编码转换为string
public static String decode(String bytes) {
bytes = bytes.toUpperCase();
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());
}
}
java字符串转16进制
1、写转换函数是必须的,目前Jdk中无现有类。
2、在不同的字符编码当中,汉字的对应的数值或者说编码值不一样,像GBK、Unicode肯定是不一样的。以Java默认的Unicode为例说明问题。
3、 一,得到字符串,
二,遍历每个字符,用char来接收,实为int值,或直接用int也可以。
三,Integer.toHexString(每个字符对应的int值);
四,前缀加个“0x”就可以了。
4、如果是其它类型的话,找到对应的字符和数值对应表就可以了。
不知可否解决问题了。
java hex 字符串怎么转换
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) {
// 根据默认编码获取a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Ydn1D4nWDvuWN9mvRvnWDv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT4rjR3n101njc4PHnLrHTYPs" target="_blank" class="baidu-highlight"字节数组/a
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
// 将a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Ydn1D4nWDvuWN9mvRvnWDv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT4rjR3n101njc4PHnLrHTYPs" target="_blank" class="baidu-highlight"字节数组/a中每个字节拆解成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());
}
java String字符串转UTF-8 hexcode怎么转?
String s=new String("欲转换字符串".getBytes(),"utf-8");
String s=new String("欲转换字符串".getBytes("utf-8"),"utf-8");
其中
s.getBytes("UTF-8");
的意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8");
的意思是以UTF-8的编码生成字符串
Java如何将十六进制数转换为十进制数的自编程序
package com.swift;//所属包
import java.util.Scanner;//导入扫描器
public class Hex2Decimal {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("please enter a Hex:");
String hex = scan.nextLine();//读取一行
hex = hex.toUpperCase();//转换成大写字母
System.out.println("The hex is:" + hex);//输出一下
int decimal = 0;
for (int i = 0; i hex.length(); i++) {
if (hexChar2Decimal(hex.charAt(hex.length() - 1 - i)) != -1) {//从16进制数的最后一个字符开始获取
decimal = (int) (decimal + hexChar2Decimal(hex.charAt(hex.length() - 1 - i)) * Math.pow(16, i));//乘以16的0次幂,然后++
} else {
System.out.println("enter error, decimal will be zero!");//如果等于-1则是非法字符
break;
}
}
System.out.println("decimal=" + decimal);
}
private static int hexChar2Decimal(char charAt) {
if (charAt = 'A' charAt = 'F')
return charAt - 'A' + 10;//A~F转换成10进制数
else if (charAt = '0' charAt = '9')
return charAt-'0';//0~9字符转换成10进制
else
return -1;
}
}
javahex转码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java hex转ascii、javahex转码的信息别忘了在本站进行查找喔。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。