Java 判断字符串中是否包含中文的实例详解
作者:carl-zhao 时间:2023-11-06 13:17:18
Java 判断字符串中是否包含中文的实例详解
Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb, 不过通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错误的结果。而且利用区间判断中文效率也并不高,例如:str.substring(i, i + 1).matches("[\\一-\\?]+"),就需要遍历整个字符串,如果字符串太长效率非常低,而且判断标点还会错误。这里提高 一个高效准确的判断方法,使用Java中的Character类:
实例代码:
package test;
import static java.lang.Character.UnicodeBlock.*;
import com.google.common.base.Strings;
public class CheckContainChinese {
public static void main(String[] args) {
String containChinese = "test,我有中文";
String containNoChiese = "test, i don't contain chinese";
System.out.println("containChinese 是否包含中文 :" + checkStringContainChinese(containChinese));
System.out.println("containNoChiese 是否包含中文 :" + checkStringContainChinese(containNoChiese));
}
private static boolean checkStringContainChinese(String checkStr){
if(!Strings.isNullOrEmpty(checkStr)){
char[] checkChars = checkStr.toCharArray();
for(int i = 0; i < checkChars.length; i++){
char checkChar = checkChars[i];
if(checkCharContainChinese(checkChar)){
return true;
}
}
}
return false;
}
private static boolean checkCharContainChinese(char checkChar){
Character.UnicodeBlock ub = Character.UnicodeBlock.of(checkChar);
if(CJK_UNIFIED_IDEOGRAPHS == ub || CJK_COMPATIBILITY_IDEOGRAPHS == ub || CJK_COMPATIBILITY_FORMS == ub ||
CJK_RADICALS_SUPPLEMENT == ub || CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A == ub || CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B == ub){
return true;
}
return false;
}
}
运行结果:
来源:http://blog.csdn.net/u012410733/article/details/51354899
标签:java,字符串,中文
0
投稿
猜你喜欢
Java使用RedisTemplate如何根据前缀获取key列表
2023-03-05 01:50:40
springcloud使用Hystrix进行微服务降级管理
2023-02-02 06:51:30
基于IDEA中格式化代码的快捷键分享
2022-08-15 14:58:03
java如何连续执行多条cmd命令
2023-07-13 13:10:41
Map与JavaBean相互转换的工具类
2021-09-22 20:59:02
Android自定义广播接收
2023-04-30 09:39:31
springboot日期转换器实现实例解析
2023-01-31 13:16:45
Android实现保存QQ账号与密码功能(文件存储)
2023-07-04 22:26:31
C#判断ip地址是否可以ping的通
2021-08-29 10:53:13
微信小程序 跳转页面的两种方法详解
2023-11-03 13:04:21
C#简单实现防止多个程序运行的方法
2021-07-31 04:36:27
C#事件标准命名规则及说明(包括用作事件类型的委托命名)
2022-02-27 06:57:43
Android Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)
2023-10-20 10:00:50
Spring MVC 前端控制器 (DispatcherServlet)处理流程解析
2023-02-03 03:56:50
详解使用IntelliJ IDEA新建Java Web后端resfulAPI模板
2023-12-14 09:26:04
SpringCloud微服务之Hystrix组件实现服务熔断的方法
2021-12-04 16:30:45
Java实现AOP功能的封装与配置的小框架实例代码
2022-12-27 10:57:45
springboot集成spring cache缓存示例代码
2021-10-20 07:57:54
IISExpress 配置允许外部访问详细介绍
2023-08-02 02:18:10
Android实现图片左右滑动效果
2022-11-30 09:30:35