Java中判断字符串是中文或者英文的工具类分享
直接上代码:
importjava.util.regex.Matcher; importjava.util.regex.Pattern;
/** * *<p> *ClassNameShowChineseInUnicodeBlock *</p> *<p> *Description提供判断字符串是中文或者是英文的一种思路 *</p> * *@authorwangxuwangx89@126.com * <p> * Date2014-9-16下午06:45:35 * </p> *@versionV1.0 * */ publicclassShowChineseInUnicodeBlock{ publicstaticvoidmain(String[]args){ Stringstr="我爱你,!?():;“”、。"; char[]charArray=str.toCharArray(); for(inti=0;i<charArray.length;i++){ isChinese(charArray[i]); } Stringchinese="中国goddamn"; System.out.println(isContainChinese(chinese)); Stringenglish="dfafdabac"; System.out.println(isEnglish(english)); }
/** * *<p> *Title:isChinese *</p> *<p> *Description:该函数就用来打印一些字符看看属于什么 *</p> * *@paramc * */ publicstaticvoidisChinese(charc){ Character.UnicodeBlockub=Character.UnicodeBlock.of(c); if(ub==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS){ System.out.println(c+"--CJK_UNIFIED_IDEOGRAPHS"); }elseif(ub==Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS){ System.out.println(c+"--CJK_COMPATIBILITY_IDEOGRAPHS"); }elseif(ub==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A){ //CJKUnifiedIdeographsExtensionWikipediaUnicode扩展汉字 //CJKUnifiedIdeographsExtensionA中日韩统一表意文字扩展区A;表意文字扩充A //CJKUnifiedIdeographsExtensionB中日韩统一表意文字扩展区B System.out.println(c+"--CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A"); }elseif(ub==Character.UnicodeBlock.GENERAL_PUNCTUATION){//通用标点 System.out.println(c+"--GENERAL_PUNCTUATION");
}elseif(ub==Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION){ System.out.println(c+"--CJK_SYMBOLS_AND_PUNCTUATION");
}elseif(ub==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){ System.out.println(c+"--HALFWIDTH_AND_FULLWIDTH_FORMS");
} }
publicstaticbooleanisEnglish(StringcharaString){ returncharaString.matches("^[a-zA-Z]*"); }
publicstaticbooleanisContainChinese(Stringstr){//检测是否包含中文 StringregEx="[\\u4E00-\\u9FA5]+"; Patternp=Pattern.compile(regEx); Matcherm=p.matcher(str); if(m.find()){ returntrue; }else{ returnfalse; } } }