您的位置:首页 > 其它

ASCII、十六进制、字节数组、字符数组相互转换

2017-04-14 11:30 531 查看
/**
* 字符串转换为Ascii
* @param value
* @return
*/
public static String stringToASCII(String value)
{
StringBuffer sbu = new StringBuffer();
char[] chars = value.toCharArray();
for (int i = 0; i < chars.length; i++) {
//			if(i != chars.length - 1)
//			{
//				sbu.append((int)chars[i]).append(",");
//			}
//			else{
//			}
sbu.append((int)chars[i]);
}
return sbu.toString();
}


字符串转换为ASCII

/**
* 字符串转换为十六进制
* @param value
* @return
*/
public static String convertStringToHex(String str) {
char[] chars = str.toCharArray();
StringBuffer hex = new StringBuffer();
for (int i = 0; i < chars.length; i++) {
hex.append(Integer.toHexString((int) chars[i]));
}
return hex.toString();
}


字符串转换为十六进制

/**
* 十六进制转换为字符串
* @param value
* @return
*/
public static String convertHexToString(String hex) {

StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();

// 49204c6f7665204a617661 split into two characters 49, 20, 4c...
for (int i = 0; i < hex.length() - 1; i += 2) {
// grab the hex in pairs
String output = hex.substring(i, (i + 2));
// convert hex to decimal
int decimal = Integer.parseInt(output, 16);
// convert the decimal to character
sb.append((char) decimal);
temp.append(decimal);
}
return sb.toString();
}


十六进制转换为字符串

// char转byte

public static byte[] getBytes (char[] chars) {
Charset cs = Charset.forName ("UTF-8");
CharBuffer cb = CharBuffer.allocate(chars.length);
cb.put(chars);
cb.flip();
ByteBuffer bb = cs.encode(cb);
return bb.array();
}


字符数组转换为字节数组

// byte转char

public static char[] getChars(byte[] bytes) {
Charset cs = Charset.forName ("UTF-8");
ByteBuffer bb = ByteBuffer.allocate(bytes.length);
bb.put(bytes);
bb.flip();
CharBuffer cb = cs.decode(bb);
return cb.array();
}


字节数组转换为字符数组

// 十进制转化为十六进制,结果为C8。

Integer.toHexString(200);

// 十六进制转化为十进制,结果140。

Integer.parseInt("8C",16)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: