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])