java判断字符串是否是中文_Java检查字符串是否包含中文字符
【前言】
最近项目的短信服务对接外国的第三方发短信通道,第三方对短信内容有限制,不能含中文字符(如果含调用结果肯定失败),所以在发送之前需要对短信内容做校验,看是否含有中文,如果含有则直接将短信发送状态改为失败,不用再去调用第三方;
【探索之旅】
站在巨人的肩膀上, 立马在网上搜索一下关于Java怎么判断字符串中是否含有中文;果然网上有很多实现;
一、实现方式一
1、针对每个字符判断
1 public static boolean isChinese(String str) throwsUnsupportedEncodingException2 {3 int len =str.length();4 for(int i = 0;i < len;i ++)5 {6 String temp = URLEncoder.encode(str.charAt(i) + "", "utf-8");7 if(temp.equals(str.charAt(i) + ""))8 continue;9 String[] codes = temp.split("%");10 //判断是中文还是字符(下面判断不精确,部分字符没有包括)
11 for(String code:codes)12 {13 if(code.compareTo("40") > 0)14 return true;15 }16 }17 return false;18 }
2、优缺点:
a.缺点:效率低【每次都需要循环检测字符串中每个字符】(每次发送都需要检测短信内容,每条内容有很多字符);
b.优点:不仅能检测出中文汉字还能检测中中文标点;
二、实现方式二
1、利用正则表达式:
1 public static booleanisContainChinese(String str) {2
3 Pattern p = Pattern.compile("[\u4e00-\u9fa5]");4 Matcher m =p.matcher(str);5 if(m.find()) {6 return true;7 }8 return false;9 }
2、优缺点:
a.缺点:只能检测出中文汉字不能检测中文标点;
b.优点:利用正则效率高;
三、方式三
1、改造正则
1 /**
2 * 字符串是否包含中文3 *4 *@paramstr 待校验字符串5 *@returntrue 包含中文字符 false 不包含中文字符6 *@throwsEmptyException7 */
8 public static boolean isContainChinese(String str) throwsEmptyException {9
10 if(StringUtils.isEmpty(str)) {11 throw new EmptyException("sms context is empty!");12 }13 Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\!|\\,|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]");14 Matcher m =p.matcher(str);15 if(m.find()) {16 return true;17 }18 return false;19 }
2、优缺点:
a.优点:效率既高又能检测出中文汉字和中文标点;
b.缺点:目前尚未发现。
【总结】
1、站在巨人的肩膀上,多去查,多做比较;
2、针对程序不断的优化,比如第一种方式循环读字符串量大后很容易将服务器CPU搞崩。
java判断字符串是否是中文_Java检查字符串是否包含中文字符相关推荐
- java字符串去掉中文_Java——去除字符串中的中文
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RemoveStrChinese { priv ...
- java aes 中文_java实现AES加密(解决中文解密后乱码问题,解决传输字符串后解密报错的问题)...
在对安全性要求比较高的报文做加密的时候,算法有很多种,我这里主要用到的就是AES加密算法.由于在国内使用,所以不可避免的要对中文进行加密和解密,而在这个过程中,发现,如果不做处理,很容易会出现中文乱码 ...
- java 比较字符串前几位_java截取字符串前几位
java截取字符串_IT/计算机_专业资料.java截取字符串 1根据字符串 S... java中常用的字符串的截取方法_计算机软件及应用_IT/计算机_专业资料.jsp中常见使用技术,js,jstl ...
- java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用
转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...
- java判断integer是否为空_java安全编码指南之:表达式规则
简介 在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧. 注意表达式的返回值 我们在使用JDK库的时候,一定要注意认真的读一下JD ...
- java判断是否为文件夹_java怎么判断是否文件夹
java判断是否是文件夹: 在桌面建立了一个名为one的文件,路径为:/Users/XXXXXX/Desktop/one java代码如下:import java.io.File; public cl ...
- java 判断对象是否为空_java怎么判断对象是否为空
java怎么判断对象是否为空 发布时间:2020-06-22 11:28:11 来源:亿速云 阅读:122 作者:Leah 本篇文章展示了java判断对象是否为空的具体操作,代码简明扼要容易理解,绝对 ...
- java 判断一个文件是否存在_java判断某个文件是否存在的方法
java判断某个文件是否存在的方法 发布时间:2020-06-25 17:09:42 来源:亿速云 阅读:119 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java判断某个文件是否存在的方法 ...
- java字符串 n换行符_java切割字符串中的回车应注意是\n\r不是\n
我们在Java中如果用到处理要分隔字符串,不免会用到String的split(String regex)函数,这时候我们要注意的. 如果想以回车来分隔字符串,很多同学都会这样做.下面是例子: Stri ...
- java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>> ...
最新文章
- go语言任意代码执行漏洞 cve-2018-6574
- linux下创建和删除软、硬链接
- 千万PV级别WEB站点架构设计
- Caffe学习系列(12):训练和测试自己的图片
- python find函数实现原理_非常干货:Python 探针实现原理
- 富士 FinePix F401
- stm32串口空闲中断接收不定长数据
- breakall lisp文件_CAD图导入SU中一次成面的方法
- Python制作翻译软件(中英文互译)
- 学语言python研究生专业目录一览表_本科专业与研究生学科专业目录对照表格模板...
- Linux meset
- 1. 无穷维空间的测度论-Wiener测度(二)
- 本科毕业论文外文翻译必须要翻译全文吗?
- Web Directions South 2012的四个大创意
- FreeType2使用总结
- 雷林鹏最人性化访谈:做投资不仅仅是要赚钱,要成为有价值的人
- Beetl开源那些事3
- 跨跃平台交流无极限——linux下如何使用即时聊天工具,跨跃平台 交流无极限——Linux下如何使用即时聊天工具(一)...
- c语言中百分号后面跟的数字_C语言中的各种百分号都代表什么意思
- python编程用什么软件?