导航:首页 > 编程语言 > java16进制字符串转换

java16进制字符串转换

发布时间:2023-06-29 07:36:12

A. java字符串转16进制

1、写转换函数是必须的,目前Jdk中无现有类。
2、在不同的字符编码当中,汉字的对应的数值或者说编码值不一样,像GBK、Unicode肯定是不一样的。以Java默认的Unicode为例说明问题。
3、 一,得到字符串,
二,遍历每个字符,用char来接收,实为int值,或直接用int也可以。
三,Integer.toHexString(每个字符对应的int值);
四,前缀加个“0x”就可以了。
4、如果是其它类型的话,找到对应的字符和数值对应表就可以了。
不知可否解决问题了。

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

直接强转为char

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

D. java怎么把16进制的字符串转化为十进制

toHexString
public static String toHexString(int
i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。
如果参数为负,那么无符号整数值为参数加上
232;否则等于该参数。将该值转换为十六进制(基数 16)的无前导 0 的 ASCII 数字字符串。如果无符号数的大小值为零,则用一个零字符 '0'
('\u0030') 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用以下字符作为十六进制数字:
0123456789abcdef

这些字符的范围是从 '\u0030' 到 '\u0039' 和从 '\u0061' 到 '\u0066'。如果希望得到大写字母,可以在结果上调用
String.toUpperCase() 方法:
Integer.toHexString(n).toUpperCase()
参数:
i
- 要转换成字符串的整数。
返回:
用十六进制(基数 16)参数表示的无符号整数值的字符串表示形式。
// 转化字符串为十六进制编码

public static String toHexString(String s)
{
String str="";
for
(int i=0;i<s.length();i++)
{
int ch = (int)s.charAt(i);
String s4
= Integer.toHexString(ch);
str = str + s4;
}
return str;
}

// 转化十六进制编码为字符串
public static String toStringHex(String s)
{

byte[] baKeyword = new byte[s.length()/2];
for(int i = 0; i <
baKeyword.length; 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)
{

E. java怎么将16进制文件字符串转成普通字符串

将指定byte数组以16进制的形式打印到控制台,代码如下:
package com.nantian.iclient.atm.sdb;
public class Util {
public Util() {
}

/**
* 将指定byte数组以16进制的形式打印到控制台
* @param hint String
* @param b byte[]
* @return void
*/
public static void printHexString(String hint, byte[] b) {
System.out.print(hint);
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
System.out.print(hex.toUpperCase() + " ");
}
System.out.println("");
}

/**
*
* @param b byte[]
* @return String
*/
public static String Bytes2HexString(byte[] b) {
String ret = "";
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}

/**
* 将两个ASCII字符合成一个字节;
* 如:"EF"--> 0xEF
* @param src0 byte
* @param src1 byte
* @return byte
*/
public static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue();
_b0 = (byte)(_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();
byte ret = (byte)(_b0 ^ _b1);
return ret;
}

/**
* 将指定字符串src,以每两个字符分割转换为16进制形式
* 如:"2B44EFD9" --> byte[]{0x2B, 0x44, 0xEF, 0xD9}
* @param src String
* @return byte[]
*/
public static byte[] HexString2Bytes(String src){
byte[] ret = new byte[8];
byte[] tmp = src.getBytes();
for(int i=0; i<8; i++){
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}

}

F. 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进制字符串,

G. 怎么把字符串转化为十六进制字符串 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");

H. 用JAVA将十进制转换成十六进制

1、用Integer.toHexString方法即可将十进制装成十六进制。

package com.test;

public class Test {

public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}

阅读全文

与java16进制字符串转换相关的资料

热点内容
安卓手机电话簿怎么导出到苹果手机 浏览:763
php实现投票 浏览:333
手机爆力解压加密视频文件 浏览:932
东方财富app怎么看北上资金图解 浏览:418
邢昭林程序员那么可爱拍现场 浏览:169
安卓什么应用可以免费看电视剧 浏览:504
合适pdf 浏览:293
app监测睡眠怎么选择 浏览:642
老人家用什么安卓手机好 浏览:955
解压包能不能送女朋友 浏览:701
好看发卡网源码 浏览:51
水平集算法matlab 浏览:769
局域网如何用ftp服务器配置 浏览:76
程序员惯性思考模式 浏览:443
如何在个税app上查身份证号 浏览:7
电视家app安装在电视上怎么安 浏览:890
怎么将pdf格式转化为图片格式 浏览:639
服务器拔掉raid卡怎么装系统 浏览:234
区域对称加密算法 浏览:247
数字转汉字php 浏览:735