Java或Android过滤合法的中英文字符
2016-11-24 11:33
435 查看
Java判断一个字符是不是中文字符是根据Unicode编码来判断的,CJK的统一编码区间是0x4e00–0x9fbb,这个区间是不包含中文中的 标点符号的。对于英文字符,可以根据ASCII编码来判断,a-z和A-Z的ASCII码值区间分别是65-90和97-122。
知道了这个我们就可以利用Unicode编码和ASCII编码来过滤合法的中文字符和合法的英文字符。代码如下:
合法的中文判断:
合法的英文判断:
DEMO下载地址
知道了这个我们就可以利用Unicode编码和ASCII编码来过滤合法的中文字符和合法的英文字符。代码如下:
合法的中文判断:
/** * 根据Unicode编码判断中文汉字和中文符号 * * @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.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) { return true; } return false; } /** * 根据正则表达式判断部分CJK字符(CJK统一汉字) * * @param str * @return */ public static boolean isChineseByREG(String str) { if(TextUtils.isEmpty(str)) return false; Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+"); return pattern.matcher(str.trim()).find(); }
合法的英文判断:
public static boolean isEnglishByREG(char c) { if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ) { return true; } return false; }
使用实例:
String[] strArray = {"于林","A于林", "&于林", " 于林 ", "yulin", " "}; for (String str : strArray) { Log.e("MainActivity", "要判断的字符串是:" + str); char[] ch = str.toCharArray(); StringBuilder sb = new StringBuilder(); for(int i = 0; i < ch.length; i++) if(CharUtils.isChineseByREG( ch[i]) || CharUtils.isEnglishByREG( ch[i])) sb.append("" + ch[i]); Log.e("MainActivity", "最终显示的名字是:" + sb.toString()); }
DEMO下载地址
相关文章推荐
- Java 过滤不安全字符
- Java过滤特殊字符的正则表达式
- Android 从JNI中传入UTF8 的字符到Java
- java正则表达式 过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式----转载
- java中特殊字符过滤
- java正则表达式 过滤特殊字符的正则表达式
- java正则表达式 过滤特殊字符的正则表达式
- java 使用正则来过滤字符串中的特殊字符
- java 过滤特殊字符
- Java 区分文本中的中英文字符函数
- Android - 从JNI中传入UTF8的字符到Java
- java 使用正则来过滤字符串中的特殊字符
- Android从JNI中传入UTF8 的字符到Java
- java对字符处理(二)-- 截取中英文字节
- java正则表达式 过滤特殊字符的正则表达式
- java 实现中英文混时得到长度 过长字符替换
- java过滤非法字符
- Android java用正则方法验证文件名是否合法
- filter(过滤不合法字符)(param)(textarea)(indexof("晕"))(form)