请问如何在给定的字符数组里识别汉字????

xrxrxr 2001-04-08 01:29:00
...全文
120 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrxrxr 2001-04-10
  • 打赏
  • 举报
回复
谢谢大家
randerx 2001-04-08
  • 打赏
  • 举报
回复
具体的实现上, 你还是从字符串头顺序一个一个 byte 读出来判断, 碰到最高位是1 的,
就跳过下一个 byte , 直到结束.
randerx 2001-04-08
  • 打赏
  • 举报
回复
char 类型其实是个 byte, 你可以判断每个 byte 的最高位, ascii 码的最高位是0
汉字或其他双字节字符的最高位是1 .利用这一点就可以判断汉字了.
还要注意一点, 所有的汉字都是双字节字符的, 但是不是所有的双字节字符都是汉字.:)
比如某些日文假名.

w12 2001-04-08
  • 打赏
  • 举报
回复
我觉得不能。如果读字符串次序错位了,就不能正确取得汉字,只能顺序读出来判断。
xrxrxr 2001-04-08
  • 打赏
  • 举报
回复
我的意思是头一位还是第二位
xrxrxr 2001-04-08
  • 打赏
  • 举报
回复
可不可以知道是第机位呢
zzh 2001-04-08
  • 打赏
  • 举报
回复
你把字符数据中字符一个一个读出来,进行比较,如果比0x7F大的就是汉字。
sundayboys 2001-04-08
  • 打赏
  • 举报
回复
ASCII码都是小于0X7f的,所以遇到一个大于0x7f的就是一个汉字
【源码免费下载链接】:https://renmaiwang.cn/s/rae42 在Java中进行字符统计是一个常见的编程练习,涉及到对输入字符串中不同字符类型的识别和计数。本知识点将详细解释如何使用Java语言来实现对输入字符串中的英文字母、空格、数字以及其他字符的统计,包括代码逻辑和对应技术点的详细说明。我们可以看到给出的程序使用了`java.util.Scanner`类来获取用户输入的字符串。`Scanner`类是一个用于解析原始类型和字符串的简单文本扫描器。它可以从不同源头读取数据,例如控制台输入、文件等。在示例代码中,`Scanner`对象`scan`是通过`System.in`(标准输入流)创建的,目的是从控制台接收用户输入的字符串。程序中定义了两个字符串变量`E1`和`E2`,分别用于匹配汉字和英文字母。`E1`的正则表达式`[\u4e00-\u9fa5]`定义了一个Unicode字符范围,这个范围基本上涵盖了所有简体中文汉字。而`E2`的正则表达式`[a-zA-Z]`表示匹配任何一个英文字母,不论大小写。接下来,程序通过将输入的字符串`str`转换为字符数组`arrChar`,然后遍历这个数组,并将每个字符转换为字符串形式存储到`arrStr`数组中。之后,代码通过使用`matches`方法和前面定义的正则表达式来检查每个字符串元素是否为汉字或字母,并据此进行计数。`matches`方法属于`String`类,用于检查字符串是否匹配给定的正则表达式。变量`countH`用于统计汉字的数量,而`countE`用于统计英文字母的数量。程序通过两个`for`循环来实现对字符串数组的遍历,第一个`for`循环负责遍历字符数组并转换,而第二个`for`循环负责匹配和计数。程序将统计的结果打印到控制台,输出用户输入的字符串中汉字和英文字母的个数。此外,程序中实际上并没有

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧