可能是2个、3个、4个字节。不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的。
1 java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节,都是一个char。
char c1 = '中'char c2 = 'A'char c3 = '1'
确切说,Unicode编码是指一类编码的统称,而非某个具体编码。
utf-8跟unicode是不一样的。
2 以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。
3 因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1个char类型的空间。
再java中,只要用双引号“ ”括起来的都是String,部分汉字还是数字或者字母等。
比如
String a="中文"String b="abc"
String c="124"
这里的a,b,c是变量,对应的都是字符串
publicString
getChineseCharAll()
{
//
获取第一个汉字的16进制
String
start
=
"4e00"
//
获取最后一个汉字的16进制
String
end
=
"9fa5"
//
将字符串变为十进制整数
int
s
=
Integer.parseInt(start,
16)
int
e
=
Integer.parseInt(end,
16)
//
创建字符串缓冲区,因为单线程,所以用StringBuilder提高效率
StringBuilder
sb
=
new
StringBuilder()
for(int
i
=
s,
count
=
1
i
<=
e
i++,
count++)
{
//
每50个汉字进行换行输出
if(count
%
50
==
0)
{
sb.append((char)
i
+
"\n")
}
else
{
sb.append((char)
i
+
"
")
}
}
return
new
String(sb)
}