在做開發的時候我們經常需要用到根據某個字符或者字符串來判斷其是中文還是英文,從而做相應的處理,其實不難,大多數人們都是用到正則來判斷的,下面小貝就給大家分享一下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(" 程序員論壇")); }