在做开发的时候我们经常需要用到根据某个字符或者字符串来判断其是中文还是英文,从而做相应的处理,其实不难,大多数人们都是用到正则来判断的,下面小贝就给大家分享一下Java判断字符串是中文还是英文
推荐文章: Java用pinyin4j根据汉语获取各种格式和需求的拼音
Java根据汉字字符串检索出字符首字母
public class ChineseAndEnglish { // GENERAL_PUNCTUATION 判断中文的"号 // CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号 // HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号 /** * 是否是中文 * @param c * @return */ public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; } /** * 是否是英文 * @param c * @return */ public static boolean isEnglish(String charaString){ return charaString.matches("^[a-zA-Z]*"); } public static boolean isChinese(String str){ String regEx = "[\\u4e00-\\u9fa5]+"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); if(m.find()) return true; else return false; } public static void main(String[] args) { System.out.println(isChinese(‘员‘)); System.out.println(isChinese(‘s‘)); System.out.println(isEnglish("程序员之家")); System.out.println(isEnglish("robert")); System.out.println(isChinese(" 程序员论坛")); }