Java 檢查字符串是否包含空格和中文
package com.demo.uninstaller.utils; import java.util.regex.Pattern; import org.apache.log4j.Logger; public class ChineseCharUtil { private static Logger log = Logger.getLogger(ChineseCharUtil.class); // true 時Check正常 public static boolean CheckChineseAndBlankCorrect(String checkString) { return (!hasChineseByRange(checkString)) && (checkString.indexOf(" ") == -1); } public static void main(String[] args) { log.debug(CheckChineseAndBlankCorrect("份額無法 3fes")); // log.debug(hasChineseByRange("份額無法 3fes")); } /** * 是否包含中文字符<br> * 包含中文標點符號<br> * * @param str * @return */ public static boolean hasChinese(String str) { if (str == null) { return false; } char[] ch = str.toCharArray(); for (char c : ch) { if (isChinese(c)) { return true; } } return false; } /** * 是否全是中文字符<br> * 包含中文標點符號<br> * * @param str * @return */ public static boolean isChinese(String str) { if (str == null) { return false; } char[] ch = str.toCharArray(); for (char c : ch) { if (!isChinese(c)) { return false; } } return true; } /** * 是否是中文字符<br> * 包含中文標點符號<br> * * @param c * @return */ private static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) { return true; } else if (ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS) { return true; } else if (ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) { return true; } else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A) { return true; } else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B) { return true; } else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C) { return true; } else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D) { return true; } else if (ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) { return true; } else if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; } /** * 是否包含漢字<br> * 根據漢字編碼范圍進行判斷<br> * CJK統一漢字(不包含中文的,。《》()“‘'”、!¥等符號)<br> * * @param str * @return */ public static boolean hasChineseByReg(String str) { if (str == null) { return false; } Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+"); return pattern.matcher(str).find(); } /** * 是否全是漢字<br> * 根據漢字編碼范圍進行判斷<br> * CJK統一漢字(不包含中文的,。《》()“‘'”、!¥等符號)<br> * * @param str * @return */ public static boolean isChineseByReg(String str) { if (str == null) { return false; } Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+"); return pattern.matcher(str).matches(); } /** * 是否包含漢字<br> * 根據漢字編碼范圍進行判斷<br> * CJK統一漢字(不包含中文的,。《》()“‘'”、!¥等符號)<br> * * @param str * @return */ public static boolean hasChineseByRange(String str) { if (str == null) { return false; } char[] ch = str.toCharArray(); for (char c : ch) { if (c >= 0x4E00 && c <= 0x9FBF) { return true; } } return false; } /** * 是否全是漢字<br> * 根據漢字編碼范圍進行判斷<br> * CJK統一漢字(不包含中文的,。《》()“‘'”、!¥等符號)<br> * * @param str * @return */ public static boolean isChineseByRange(String str) { if (str == null) { return false; } char[] ch = str.toCharArray(); for (char c : ch) { if (c < 0x4E00 || c > 0x9FBF) { return false; } } return true; } }