您好,登錄后才能下訂單哦!
java判斷字符串中是否包含中文?
方法1、針對每個字符判斷
public static boolean isChinese(String str) throws UnsupportedEncodingException { int len = str.length(); for(int i = 0;i < len;i ++) { String temp = URLEncoder.encode(str.charAt(i) + "", "utf-8"); if(temp.equals(str.charAt(i) + "")) continue; String[] codes = temp.split("%"); //判斷是中文還是字符(下面判斷不精確,部分字符沒有包括) for(String code:codes) { if(code.compareTo("40") > 0) return true; } } return false; }
優缺點:
缺點:效率低【每次都需要循環檢測字符串中每個字符】(每次發送都需要檢測短信內容,每條內容有很多字符);
優點:不僅能檢測出中文漢字還能檢測中中文標點;
方法2、利用正則表達式
public static boolean isContainChinese(String str) { Pattern p = Pattern.compile("[\u4e00-\u9fa5]"); Matcher m = p.matcher(str); if (m.find()) { return true; } return false; }
優缺點:
缺點:只能檢測出中文漢字不能檢測中文標點;
優點:利用正則效率高;
方法3、改造正則
/** * 字符串是否包含中文 * * @param str 待校驗字符串 * @return true 包含中文字符 false 不包含中文字符 * @throws EmptyException */ public static boolean isContainChinese(String str) throws EmptyException { if (StringUtils.isEmpty(str)) { throw new EmptyException("sms context is empty!"); } Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\!|\\,|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]"); Matcher m = p.matcher(str); if (m.find()) { return true; } return false; }
優缺點:
優點:效率既高又能檢測出中文漢字和中文標點;
缺點:目前尚未發現。
以上就是java判斷字符串中是否包含中文?的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。