一、主要目的
探究Unicode格式的字符和char类型的转换
二、代码如下
/**
* 实现Unicode字符的字符输出和char类型的转换
*/
public class UnicodeUtil {
public static void main(String[] args) {
// 测试用法:
System.out.println((int) 'a');
System.out.println("\uCCCA");
System.out.println("toUnicodeString执行结果:" + toUnicodeString('쳊'));
String data = "\\uCCCA";
System.out.println("toCharByUnicodeString执行结果:" + toCharByUnicodeString(data));
System.out.println("toCharByUnicodeString执行结果:" + toCharByUnicodeString(toUnicodeString('中')));
System.out.println("菜单:");
System.out.println(toUnicodeString('菜'));
System.out.println(toUnicodeString('单'));
System.out.println(toUnicodeString(':'));
}
/**
* 返回一个字符的Unicode编码格式;
* Unicode格式是两个字节代表一个字符。
* @param c 字符
* @return String类型
*/
public static String toUnicodeString(char c){
// 1、定义字符串缓冲
// 添加开头的字符
StringBuffer buffer = new StringBuffer("\\u");
// 2、字符char类型,转成int整型
// int是四个字节,32位。
// char是两个字节,16位。
int data = c & 0xFFFF;
// 3、将整型数转成十六进制的字符串形式
String toHexString = Integer.toHexString(data);
// 4、转换成大写形式
toHexString= toHexString.toUpperCase();
// 5、添加到buffer缓冲中
buffer.append(toHexString);
// 6、返回字符串结果
return buffer.toString();
}
/**
* 通过十六进制的Unicode字符串,转换成字符返回。
* @param str
* @return
*/
public static char toCharByUnicodeString(String str){
// 1、截取\\u后面的字符
str = str.toLowerCase().substring(2);
// 2、转换成整型数,用十六进制字符转成十进制整数
int data = Integer.parseInt(str, 16);
// 3、强制转换成char类型
return (char) data;
}
}