「javahex转码」java hex转ascii

博主:adminadmin 2022-12-01 14:13:06 191

今天给各位分享javahex转码的知识,其中也会对java hex转ascii进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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转码的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。