‘壹’ java 的byte数组与汉字输出
String在Java是字符数组,他的字符是使用Unicode字符来构建的。
String s=new String(byteArray);
是把数组byteArray[]的值初始化给了s,所以s是一个把byte类型的数据转化为Unicode字符数组的字符串。
‘贰’ java中的byte只有两个字节,才一万多个字符,为什么可以保存汉字
byte 只有一个字节,java表示字符使用的 char 类型 这个是两个字节5万多个字符,常用汉字才3万多。
‘叁’ java一个汉字占3个byte么
String name = ‘汉字';
System.out.println(name.getBytes('gbk').length); 结果是4
System.out.println(name.getBytes().length); 结果是6
实际上在gbk编码中每个汉字是2个字节。
UTF-8编码是变长的,1—6个字节。其中汉字编码,是3个或4个字节
你的问题可能是因为系统编码不一样。引起的
ps:双引号在答题时不能正常显示,所以用的是单引号
‘肆’ java中一个汉字 字节
你这个问题涉及到汉字的生成原理,汉字是由区码和位码组成的,在组成一个汉字之后,把这两个字节认为是一个字符,而在计算长度的时候又是看有几个字符,所以“国人”的length=2了。
您的进步是我最大的动力,如果你觉得我回答的合理的话,请给我多加分。谢谢,如果不明白的话,请给我留言。大家相互学习啊! 加油!
‘伍’ java byte字节里有一个汉字 怎么把它输出来 用char强转了 打出来是号
你用什么读的 你直接用BufferReader 例如:
public static void main(String[] args) {
String result = "";
BufferedReader bre = null;
try {
bre = new BufferedReader(new FileReader("D:/test/test.txt"));//此时获取到的bre就是整个文件的缓存流
while ((result = bre.readLine())!= null) {// 判断最后一行不存在,为空结束循环
System.out.println(result);//原样输出读到的内容
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
希望能帮到你!
‘陆’ java中byte是什么类型
java中byte是字节型。
java byte作为最小的数字来处理的,因此它的值域被定义为-128~127,byte的用作计数的时间远少于用表达基本内存单元的时间。
比如从stream里读入一个双字节字符,我们先收到2个byte。为了把byte转换成适当的形式,需要对byte值做一些比较,比如判断字符集要比较其是否在某个编码范围内。
(6)javabyte汉字扩展阅读:
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。
例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。
‘柒’ java byte是什么类型
byte属于java里的基本数据类型,字节型,2个字节相当于一个字符,通俗的说2个字节可以是一个汉字,可以是一个字母。
‘捌’ java中如何计算一个字符串的byte长度(一个汉字多少字符)
中文并不一定是占两个字节的,具体占多少字节是跟具体的编码方式相关的。
比如说:GB2312、GBK、GB18030
编码是占用两个字节的,但是
UTF-8
编码的话至少需要占用三个字节。
有一个简单方法,就是把大于
0xff
的字符都作为两个字符(当然是在
GBK
环境下)
Java
code
publicstaticint
count(String
str)
{
if(str
==null||
str.length
==0)
{
return0;
}
int
count
=0;
char[]
chs
=
str.toCharArray();
for(int
i
=0;
i
<
chs.length;
i++)
{
count
+=
(chs[i]
>0xff)
?2
:
1;
}
return
count;
}
或者你直接使用
int
len
=
str.getBytes("gbk");上面代码假设你的数据库编码格式是
GBK
的,而不是
UTF-8
的,如果是
UTF-8
的话,上面的代码无效!1字节等于8比特,一个字母是1字节,而一个汉字要用2个字节。一个汉字=2个字符