java实现检测是否字符串中包含中文
代码非常实用,这里就不错废话,直接奉上
主要功能是实现判断字符串是否包含汉字并且替换成ASCLL
privatestaticStringregEx="[\\u4e00-\\u9fa5]"; /** *判断字符串是否包含汉字并且替换成ASCLL * *@paramstr_para *@returnstr_result */ privatestaticStringisChinese_Replace(Stringstr_para) { Patternp=Pattern.compile(regEx); Stringstr_result=str_para; Stringstr_0=""; Stringstr_1=""; Stringstr_data[]=null; Stringstr_return_reslut=""; if(str_result!=null&&str_result.trim().length()>0) { try{ str_data=str_result.split(""); for(inti=0;i<str_data.length;i++) { Matcherm=p.matcher(str_data[i]); /*L.d(str_data[i]);*/ intcount=0; if(m.find()) { count++; str_result=m.group(0); byte[]b=str_result.getBytes("GBK"); str_0=Integer.toHexString(b[0]); str_1=Integer.toHexString(b[1]); str_return_reslut=str_return_reslut+"/"+conver10(str_0)+conver10(str_1)+"/"; }else{ str_return_reslut=str_return_reslut+str_data[i]; } } }catch(NumberFormatExceptione){ e.printStackTrace(); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } }else{ return(str_return_reslut); } return(str_return_reslut); } /*字符串转换十进制*/ publicstaticintconver10(Stringstr_0) { return(Integer.parseInt(str_0.substring(str_0.length()-2,str_0.length()),16)); }
我们来看个稍微简单些的代码,一些需求不高的地方可以用到
importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassdemo{ staticStringregEx="[\u4e00-\u9fa5]"; staticPatternpat=Pattern.compile(regEx); publicstaticvoidmain(String[]args){ Stringinput="Hellworld!"; System.out.println(isContainsChinese(input)); input="helloworld"; System.out.println(isContainsChinese(input)); } publicstaticbooleanisContainsChinese(Stringstr) { Matchermatcher=pat.matcher(str); booleanflg=false; if(matcher.find()){ flg=true; } returnflg; }
最后我们附上各种字符的unicode编码的范围:
*汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
*数字:[0x30,0x39](或十进制[48,57])
*小写字母:[0x61,0x7a](或十进制[97,122])
*大写字母:[0x41,0x5a](或十进制[65,90])