当前位置:首页 » 编程语言 » java字符串16进制

java字符串16进制

发布时间: 2023-09-18 01:21:21

‘壹’ java字符串转换为十六进制数组

字符串作为函数change的参数inputStr
byte[] change(String inputStr) {
byte[] result = new byte[inputStr.length() / 2];
for (int i = 0; i < inputStr.length() / 2; ++i)
result[i] = (byte)(Integer.parseInt(inputStr.substring(i * 2, i * 2 +2), 16) & 0xff);
return result;
}

‘贰’ Java 16进制字符串转化成十六进制数字

没懂啥意思,可以先将字符串转化为整型,后面有需要了,再将整型转化为16进制的数字

		intparseInt=Integer.parseInt("cc",16);
System.out.println(parseInt);
StringhexString=Integer.toHexString(parseInt);
System.out.println(hexString);

‘叁’ java中如何将byte[]里面的数据转换成十六进制

方法如下:

/* *

* Convert byte[] to hex string.这里我们可以将byte转冲脊换成int,然后利用Integer.toHexString(int)

*来转换成16进制字符散悔渗串。

* @param src byte[] data

* @return hex string

*/

public static String bytesToHexString(byte[] src){

StringBuilder stringBuilder = new StringBuilder("");

if (src == null || src.length <= 0) {

return null;

}

for (int i = 0; i < src.length; i++) {

int v = src[i] & 0xFF;

String hv = Integer.toHexString(v);

if (hv.length() < 2) {

stringBuilder.append(0);

}

stringBuilder.append(hv);

}

return stringBuilder.toString();

}

此方法能将byte[]转化成16进制字符串,

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

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

/*
*将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
publicstaticStringdecode(Stringbytes){
ByteArrayOutputStreambaos=newByteArrayOutputStream(bytes.length()/2);
//将每2位16进制整数组装成一个字节
for(inti=0;i<bytes.length();i+=2)
baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString
.indexOf(bytes.charAt(i+1))));
returnnewString(baos.toByteArray());
}
亲测可行,支持中文!!!

‘伍’ java 怎么用正则表达式判断一个字符串是否为16进制数,且如果包含字母要转为大写

用正则表达式判断一个字符串是否为16进制数的Java程序如下(不知道是不是你想要的)

publicclassAA{
publicstaticvoidmain(String[]args){
Strings="123bf";
Stringregex="^[A-Fa-f0-9]+$";
if(s.matches(regex)){
System.out.println(s.toUpperCase()+"是16进制数");
}else{
System.out.println(s.toUpperCase()+"不是16进制数");
}
}
}

运行结果
123BF是16进制数

‘陆’ 怎么把字符串转化为十六进制字符串 java

思路:用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值。

方法如下:
public static String str2HexStr(String str) {
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++) {
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f; //位于运算

sb.append(chars[bit]); //进行字符串的拼接

}
return sb.toString();
}

调用方法如下:
String str = str2HexStr("asbd");

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:425
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:550
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:736
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:529
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:139
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:227
java驼峰 发布:2025-02-02 09:13:26 浏览:644
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:527
linuxadobe 发布:2025-02-02 09:09:43 浏览:205
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:721