汉字字符串转换成十六进制byte数组,一个汉字存到两个byte里面,大整数存到两个byte里面
2012-10-29 20:07
756 查看
package com.zdz8207.test;
/**
* 汉字字符串转换成十六进制byte数组,一个汉字存到两个byte里面,大整数存到两个byte里面
* @author zhengdunzhuang
*
*/
public class ChineseCharacterStringToByteArray {
public static void main(String[] args) {
byte[] data = new byte[42];
data[0] = (byte) 0x04;
data[1] = (byte) (42);
printHexString(data);
System.out.println("");
String msg = "你已成功添加李先生为好友";
data = toHexByteByStrings(data,3,msg);
printHexString(data);
/*
* 用工具转换需要的结果:
你已成功添加李先生为好友
{0x4f60,0x5df2,0x6210,0x529f,0x6dfb,0x52a0,0x674e,0x5148,0x751f,0x4e3a,0x597d,0x5 3cb,0x0};
打印输出结果:
042A00000000000000000000000000000000000000000000000000000000000000000000000000000000
042A4F605DF26210529F6DFB52A0674E5148751F4E3A597D53CB00000000000000000000000000000000
4F60
*/
int i = 20320;//0x4f60
byte[] b = intToByteArray(i);
System.out.println("");
printHexString(b);
}
//整数转换成byte数组
public static byte[] intToByteArray(int i) {
byte[] result = new byte[2];
result[0] = (byte) ((i & 0xFF00) >> 8 );
result[1] = (byte) ( i & 0xFF);
return result;
}
/** * 转化汉字字符串为十六进制编码并放到byte数组里面,一个字符两个byte字节 * @param data byte数组 * @param start 要追加的开始个数,从1算起,如从byte[3]开始 则start=4 * @param s 要转换的字符串 * @return */ public static byte[] toHexByteByStrings(byte[] data,int start,String s) {
int j = start;
for (int i = 0; i < s.length(); i++) {
int ch = (int) s.charAt(i);
data[j-1] = (byte) ((ch & 0xFF00) >> 8 );
data[j] = (byte) ( ch & 0xFF);
j += 2;
}
return data;
}
// 转化字符串为十六进制编码字符串
public static String toHexByStrings(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;// 0x表示十六进制
}
//打印十六进制字符串
public static void printHexString(byte[] b) {
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());
}
}
}
/**
* 汉字字符串转换成十六进制byte数组,一个汉字存到两个byte里面,大整数存到两个byte里面
* @author zhengdunzhuang
*
*/
public class ChineseCharacterStringToByteArray {
public static void main(String[] args) {
byte[] data = new byte[42];
data[0] = (byte) 0x04;
data[1] = (byte) (42);
printHexString(data);
System.out.println("");
String msg = "你已成功添加李先生为好友";
data = toHexByteByStrings(data,3,msg);
printHexString(data);
/*
* 用工具转换需要的结果:
你已成功添加李先生为好友
{0x4f60,0x5df2,0x6210,0x529f,0x6dfb,0x52a0,0x674e,0x5148,0x751f,0x4e3a,0x597d,0x5 3cb,0x0};
打印输出结果:
042A00000000000000000000000000000000000000000000000000000000000000000000000000000000
042A4F605DF26210529F6DFB52A0674E5148751F4E3A597D53CB00000000000000000000000000000000
4F60
*/
int i = 20320;//0x4f60
byte[] b = intToByteArray(i);
System.out.println("");
printHexString(b);
}
//整数转换成byte数组
public static byte[] intToByteArray(int i) {
byte[] result = new byte[2];
result[0] = (byte) ((i & 0xFF00) >> 8 );
result[1] = (byte) ( i & 0xFF);
return result;
}
/** * 转化汉字字符串为十六进制编码并放到byte数组里面,一个字符两个byte字节 * @param data byte数组 * @param start 要追加的开始个数,从1算起,如从byte[3]开始 则start=4 * @param s 要转换的字符串 * @return */ public static byte[] toHexByteByStrings(byte[] data,int start,String s) {
int j = start;
for (int i = 0; i < s.length(); i++) {
int ch = (int) s.charAt(i);
data[j-1] = (byte) ((ch & 0xFF00) >> 8 );
data[j] = (byte) ( ch & 0xFF);
j += 2;
}
return data;
}
// 转化字符串为十六进制编码字符串
public static String toHexByStrings(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;// 0x表示十六进制
}
//打印十六进制字符串
public static void printHexString(byte[] b) {
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());
}
}
}
相关文章推荐
- 我也分享一个字节数组到十六进制字符串互相转换
- Java编程题:将一个十六进制的字符串转换成一个十进制的整数
- 十六进制字符串和byte数组之间的各种转换关系
- 3.有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转换为字符串保存到字符串数组中
- 【比特币】十六进制字符串转换成整数数组
- MSDN将字节数组转换为十六进制值字符串时 Byte 的用法
- Java整数-字节,字节-字符,字节数组-十六进制字符串转换
- sql server数据库里面要把一个字符串转换为整数 .
- MSDN将字节数组转换为十六进制值字符串时 Byte 的用法
- 有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转换为字符串保存到字符串数组中
- java里面byte数组和String字符串怎么转换
- java里面byte数组和String字符串怎么转换
- 将一个BYTE数组转换成16进制字符串和10进制字符串格式
- java中byte数组与十六进制字符串相互转换
- java里面byte数组和String字符串怎么转换
- 将一个整型数组里面的元素转换成字符串类型
- MD5加密与byte[]数组与十六进制字符串与字符串的互相转换
- 将byte数组转换成对应的十六进制的字符串形式
- 啊,好久没更新了,今天分享一个小工具,两个方法,转换字节数组成十六进制字符串
- java里面byte数组和String字符串怎么转换