如何判断一个char是一个字符,还是一个四字节字的前(后)半部

来源:百度知道 编辑:UC知道 时间:2024/06/14 07:16:56
java从输入流读入char数组
怎么判断其中的一个char是一个字符,还是一个四字节字的前(后)半部?
望各位高手指点下
char是由两个字节组成
四字节是由四个字节组成,所以四字节字需要用两个char来表示
当我遍历一个从输入流读入的char数组时,我不知道如何判断当前的char是一个标准双字节字,还是一个四字节字的前(后)半部分。。。
这下解释的清楚点了吧。。。

踏岸寻柳 - 同进士出身 七级
char的容量应该是双字节吧。。。
如果你的输入流里面有四字节字,你用char数组来读取该输入流,那么请问四字节字是怎么在这个数组里存在的?

可以用当前的char和下一个char组合起来看是否能组成一个四字节字,如果是,则当前的char为4字节字的前半部
要代码的话HI我一下

LZ所说的双字节,应该是一个字节吧,所说的四字节,应该是两个字节吧,呵呵,乱猜的,见笑。 当然能判断。 不管多长的流,用循环语句一次从流中读两个字节,判断一下,是中文,输出中文,不是中文,输出前一个字节所表示的字符,后一字节推回流,重复本过程,读完为止。

lz的说法不确切。
char就是一个字符,是单字节的。
你说的两个字节组成的应该是word,四个字节的应该是dword。
从输入流读入的char数组,里面怎么会有丝字节字呢?
难道是UNICODE?

如果楼主非得较这个真的话,我的想法是:如果可以以Object[]数组读取该输入流的话,当是双字节直接放到Object[]里,当是四字节字时把四字节字转换成char[]再放到Object[]。 如果不可以的话,那就只能从数据的源头处理了,程序是不可能知道那两个char组合是一个四字节的。 就好比char[]数组里有'a','i','n','o','n'。'a'是2个字节的,而'in'和'on'是2个四个字节的。
但程序它不可能知道,'in'和'on'他们应该是组合在一起的,而'a'是单独的,除非你让程序知道这些char的组合规则,才有可能判断LZ的这个问题。

public static int getWordLength(String str) {
int len = 0;
if (StringUtil.isBlank(str)) {
return len;
}
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (isChinese(ch[i])) {
len = len