前言
本文介绍了java
中char
类型为什么可以直接赋值给int类型变量,以及一个实现中文转unicode
编码的方法。
一、java中char类型为什么可以直接赋值给int类型变量?
例如:
int chr1 = str.charAt(i);
JAVA
中,char
占2字节,16位。可在存放汉字char
赋值
char a='a'; //任意单个字符,加单引号。
char a='中';//任意单个中⽂字,加单引号。
char a=111;//整数。0~65535。⼗进制、⼋进制、⼗六进制均可。输出字符编码表中对应的字符。
注:只能放单个字符。
3. char
运算
char
类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。
在JAVA中,对
char
类型字符运⾏时,直接当做ASCII表对应的整数来对待
二、中文转unicode编码
代码如下:
public static String chinaToUnicode(String str) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
int chr1 = str.charAt(i);
if (chr1 >= 19968 && chr1 <= 40869) {
result.append("\\u").append(Integer.toHexString(chr1));
} else {
result.append(str.charAt(i));
}
}
return result.toString();
}
总结
java
中,char
类型可以直接赋值为int
类型,是因为在JAVA
中,对char
类型字符运⾏时,直接当做ASCII
表对应的整数来对待,中文字符的范围为19968 ~ 40869
,在这个范围内使用Integer.toHexString
获取unicode
编码,然后拼接,就可以得到结果。