怎样判断一个字符是否为中文字

怎样判断一个字符是否为中文字?
http://www.matrix.org.cn/thread.shtml?topicId=95b99c6d-46d1-11db-af0b-0f766c077b58&forumId=19

中文字在unicode里用2字节表示的时候,编码(例如,UTF-16BE)是从4e00-9FBB
如果用char表示,第一个中文字是char c = 19968 (4e00)最后一个中文字,char c = 40891 (9FBB)
如果你是有char数组,直接比较就行了。小于19968大于40891都不是中文 *字*。中文的标点符号,在另外的编码段,具体可以去查www.unicode.org。不过我一般还是使用byte[2]来操作一个中文字,转string也比较方便。
用byte进行转换可以如下面:
byte[] b = new String("一").getBytes("UTF-16BE");
int k = b[0] & 0xFF;
int x = b[1] & 0xFF;
int sum = k * 256 + x;

sum = 19968
byte类型经过一次& 0xFF以后将直接转换成为int类型。

 

 

 

//判断是否中文字
public boolean checkChinese(char word){
   if ((word >= 0x4e00)&&(word<=0x9fbb)) return true;
   else return false;
}

 

 

 

 

 

java.lang.Character.UnicodeBlock.
有个CJK(china中,japan日,k??韩)的常量,有个专门的方法来判断的.JAVA的lib和API还是很全的

[System.out.println(Character.UnicodeBlock.of('中'));]

 

 

 

 

 

这两天在写一个关于中文的小程序,里面有点代码:
enum CharType{
        DELIMITER, //非字母截止字符,例如,.)( 等等 ( 包含U0000-U0080)
        NUM, //2字节数字1234
        LETTER, //gb2312中的,例如:ABC,2字节字符 同时包含 1字节能表示的 basic latin and latin-1
        OTHER,// 其他字符
        CHINESE;//中文字
}

        private CharType checkType(char c){
                CharType ct =null;
                
                //中文,编码区间0x4e00-0x9fbb
                if ((c >= 0x4e00)&&(c <= 0x9fbb)){
                        ct = CharType.CHINESE;
                }
                
                //Halfwidth and Fullwidth Forms, 编码区间0xff00-0xffef
                else if ( (c >= 0xff00) &&(c <= 0xffef)) {
                        //        2字节英文字
                        if ((( c >= 0xff21 )&&( c <= 0xff3a)) ||
                                        (( c >= 0xff41 )&&( c <= 0xff5a))){
                                ct = CharType.LETTER;
                        }
                        
                        //2字节数字
                        else if (( c >= 0xff10 )&&( c <= 0xff19)  ){
                                ct = CharType.NUM;
                        }
                        
                        //其他字符,可以认为是标点符号
                        else ct = CharType.DELIMITER;
                }
                
                //basic latin,编码区间 0000-007f
                else if ( (c >= 0x0021) &&(c <= 0x007e)){
                        //1字节数字
                        if (( c >= 0x0030 )&&( c <= 0x0039)  ){
                                ct = CharType.NUM;
                        }
                        //1字节字符
                        else if ((( c >= 0x0041 )&&( c <= 0x005a)) ||
                                        (( c >= 0x0061 )&&( c <= 0x007a)))        {
                                ct = CharType.LETTER;
                        }
                        //其他字符,可以认为是标点符号
                        else ct = CharType.DELIMITER;
                }
                
                //latin-1,编码区间0080-00ff
                else if ( (c >= 0x00a1) &&(c <= 0x00ff)){
                        if (( c >= 0x00c0 )&&( c <= 0x00ff)){
                                ct = CharType.LETTER;
                        }
                        else ct = CharType.DELIMITER;
                }
                else ct = CharType.OTHER;
                
                return ct;
        }


RK3568平台开发系列讲解(UBOOT篇)u-boot启动流程 U-Boot(Universal Bootloader)是一种开源的引导加载程序,广泛用于嵌入式系统中。它的主要功能是初始化硬件设备,加载操作系统内核,并将控制权交给操作系统。U-Boot的启动流程可以分为多个阶段,以下是典型的U-Boot启动流程: 阅读详情

相关推荐

系统安装、qt配置、安装pcie驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 安装Linux系统指定:ununtu20.04并配置相关软件环境 前言 提示:这里可以添加本文要记录的大概内容: ununtu20.04、Qt 5.9.0、pcie驱动 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装系统 制作系统盘(win10),在开机时按相应键进入BIOS,(华硕需要先改配置启动->CSM->开启->第一个选项选第一个或第二个),等待即可 进入后按照https://www.sysgeek.

weixin_44832804的博客 2205

字符串的第一个字符是否是汉字

判断一个字符是不是汉字通常有三种方法,第一种用 ASCII 码判断,第二种用汉字的 UNICODE 编码范围判 断,第三种用正则表达式判断,以下是具体方法。   1、用ASCII码判断   在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下: [csharp] view plaincopyprint? string

1318

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3592

判断一个字符或者字符串是否为中文字符

在Java语言中,默认使用Unicode编码方式,每个字符占用两个字节,因此可以用来存储中文。虽然String是由char所组成的,但是它采用了更加灵活的方式来存储,即英文占用一个字符,中文占用两个字符,采用这种存储的方式可以减少所需要的内存,提高存储效率。 1. 判断字符串中是否包含中文字符(注意在UTF-8环境下和GBK环境下,中文 占的字节数不一样,在UTF-8环境下中文占三个字节,而在G...

SoWhatWorld的博客 9689

[Ethernet in CANoe]4--CANoe工程中SOME/IP报文的详细介绍(二)

介绍了SOME/IP报文的SD报文(ServiceDiscovery),本片文章开始继续介绍SOME/IP报文。

汽车ECU自动化测试 1113

PyCharm配置WSL开发环境保姆级教程:从安装Conda到项目依赖一键搞定

本文提供PyCharm配置WSL开发环境的完整教程,涵盖从安装Conda到项目依赖管理的全流程。详细介绍了WSL2环境准备、Conda环境配置、PyCharm远程解释器设置等关键步骤,并包含实用技巧和常见问题解决方案,帮助开发者高效搭建Python开发环境。

weixin_42620202的博客 309

判断中文字符的八种方法C#

软件开发技术交流,同学习共进步,欢迎加群, 群号:169600532 前段时间看见一些判断中文字符的方法,特整理出来,供以后用时方便 方法一 在unicode 字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。 通过对字符的unicode编码进行判断来确定字符是否为中文。 protected bool IsChineseLetter(str...

weixin_34117522的博客 534

STM32CUBEMX 使用教程5 — DMA配置 & 串口结合DMA实现数据搬运

DMA(Direct Memory Access),直接存储器访问(或数据搬运),是STM32中很实用的一个外设。DMA 传输数据方式不需要 CPU 参与控制传输,也不用中断处理的方式进行数据搬运处理,纯粹通过硬件为 RAM 与 I/O 设备之间开辟一条直接传送数据的通路,使 CPU 的效率大大提高。

weixin_43866583的博客 1499

判断字符串是否是中文

判断字符是否是中文(1)通过编码判断单个字符是否是中文。代码如下: /// &lt;summary&gt; /// 判断一个字符是中文还是英文 /// &lt;/summary&gt; /// &lt;param name=&quot;c&quot;&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&g

蓝鹰 1万+

YOLOv8/v9实战:从零搭建智慧零售货架管理系统(附完整可运行代码)

摘要:本文基于YOLOv8/v9目标检测算法,详细讲解智慧零售货架管理系统的开发流程,解决传统人工巡检效率低、漏检率高的问题。内容涵盖环境配置、商品检测、陈列分析、价格标签验证等核心功能实现,提供可运行代码及零售专用数据集训练方法。系统支持实时货架状态监控、缺货预警与数据分析,帮助零售企业降低运营成本30%以上。 关键词:YOLOv8、YOLOv9、智慧零售、货架管理、商品检测 标签:YOLOv8、YOLOv9、目标检测、零售AI、Python

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1309

YOLOv11改进 - 卷积Conv | PATConv(Partial Attention Convolution)部分注意力卷积,在减少计算量的同时融合卷积与注意力的优势 | AAAI 2026

本文提出部分注意力卷积(PATConv)机制,并将其集成到YOLOv11中。传统神经网络中,卷积计算密集,注意力机制全局计算冗余,此前的“部分卷积”会丢失未计算通道的特征价值。PATConv通过“通道拆分 - 并行处理 - 结果拼接”的逻辑,给不同通道分配“擅长的任务”,兼顾局部与全局特征。基于此,它还衍生出PAT_ch、PAT_sp和PAT_sf三种细分模块。此外,还提出了动态部分卷积(DPConv),并构建了新的混合网络家族PartialNet。我们将PATConv代码集成到YOLOv11中,实验表明,

魔改工程师的博客 1085

JAVA判断字符串是中文

判断字符串是否为中文字符的 Java 实现 在当今的编程世界中,字符串处理是一项基础且重要的技能。特别是在处理多语言文本时,我们常常需要判断一个字符串中是否包含特定语言的字符,例如中文字符。在这篇文章中,我们将探讨如何在 Java 中判断一个字符串是否为中文,详细分析相关的方法和示例代码。 为什么要判断字符串是否为中文? ...

weixin_30974905的博客 501

开尔文四线法与电桥(uΩ电阻检测)

本文介绍了开尔文四线法与电桥在电阻测量中的应用,特别是针对uΩ级别电阻的精确检测。讨论了基本电桥电路的工作原理,强调了开尔文四线法的优势,它能消除导线和接触电阻的影响。文中还提到了测试设备的介绍,包括不同级别的电阻测试,并详细阐述了uΩ级别电阻测试的步骤和注意事项。此外,对比了惠斯通电桥与开尔文电桥,强调了它们在电阻测量中的作用和计算方法。

让你爱上电路设计 7859

Java判断一个字符是否为中文字符

Java判断一个字符是否为中文字符 /*** * 判断字符是否为中文 * @param ch 需要判断的字符 * @return 中文返回true,非中文返回false */ private static boolean isChinese(char ch) { //获取此字符的UniCodeBlock Charact...

Guijun6的博客 3210

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

判断一个字符串里是否有中文字符

1 //返回0:无中文,返回1:有中文 int IncludeChinese(char *str) { char c; while(1) { c=*str++; if (c==0) {  break; //如果到字符串尾则说明该字符串没有中文字符 }   if (c&0x80)   //如果字符高位为1且下一字符高位也是1则有中文字符 {       if (*str

Keivin 4188

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java判断一个字符串里面是否含有中文字符

在写翻译项目时,里面有个需求需要判断一个字符串里面是否含有中文字符,实现起来也还比较简单,把字符串转toCharArray(),然后取出每一个字符,根据字节码判断,无非是遍历循环 代码如下: // 判断一个字符是否是中文 public static boolean isChinese(char c) { return c >= 0x4E00 && c <= 0x9FA

谢栋的专栏 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JAVA读取中文文件,判断string中含有中文字符,判断某一个字符是否为中文字符

1.用InputStreamReader读取中文文件,如下: File file= new File("d:\\DrugTraffickingId.idx");  FileInputStream fistwice = new FileInputStream(file);  InputStreamReader isr = new InputStreamReader(fistwice,"gbk"

zhangzongqin_a5的专栏 1万+

判断一个字符串中是否含有中文字符:

python中的encode和decode: 首先,在Python中字符串的表示是 用unicode编码。所以在做编码转换时,通常要以unicode作为中间编码。 decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码 encode的作用是将unicode编码的字符串转换成其他编码格...

weixin_30906425的博客 100

判断一个字符串中是否含有中文字符(测试可用)

#-*- coding:utf-8 -*-    import sys  reload(sys)  sys.setdefaultencoding('utf8')    def check_contain_chinese(check_str):      for ch in check_str.decode('utf-8'):          if u'\u4e00'    

weixin_35640856的博客 1523

判断一个字符串中是否包含中文字符

判断一个字符串中是否包含中文字符

北执南念的博客 5925

java 中判断字符是否为big5码_【转载】判断一个字符是西文字符还是中文字符

转载:http://blog.chinaunix.net/u2/70445/showart_1133335.html一、判断一个字符是西文字符还是中文字符 大家知道西文字符主要是指ASCII码,它用一个字节表示。且这个字符转换成数字之后,该数字是大于0的,而汉字是两个字节的,第一个字节的转化为数字之后应该是小于0的,因此可以根据每个字节转化为数字之后是否小于0,判断它是否是汉字。例如,设输入...

weixin_29378975的博客 764

Java判断一个字符串中是否包含中文字符工具类

Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比如:,。等等是不能识别的。 以下是比较完善的判断方法:CharUtil.java [java] view plain copy print? packag

零度的博客专栏 7414

dart语言中如何判断一个字符串是否含有中文字符

在 Dart 语言中,可以使用正则表达式来判断一个字符串中是否含有中文字符。具体实现方式如下: String str ="这是一个字符串"; RegExp exp = RegExp(r"[\u4e00-\u9fa5]"); if(exp.hasMatch(str)) { // 字符串中含有中文字符 } else { // 字符串中不含有中文字符 } 在这里,\u4e00-\u9fa5是U...

weixin_35755823的博客 1067

判断一个python字符串中是否包含中文字符

#在python中一个汉字算一个字符,一个英文字母算一个字符 #用 ord() 函数判断单个字符的unicode编码是否大于255即可。 def is_contain_chinese(check_str): #check_str是一个unicode编码的字符。例如 #check_str=u'fff好几个' for ch in check_str: ...

weixin_30483697的博客 1151

Android 判断一个字符是否是中文字符

【代码】Android判断一个字符是否是中文字符。

qq_50675668的博客 627
上一篇: 反射基本概念和使用
下一篇: send email with velocity and spring 完整示例
topinking
博客等级 码龄20年 15粉丝 242原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值