java中文及特殊字符的校验方法
程序员文章站
2024-02-28 15:43:40
本文实例为大家分享了android九宫格图片展示的具体代码,供大家参考,具体内容如下
参考链接:character.unicodeblock中cjk的说明详解
1.关于...
本文实例为大家分享了android九宫格图片展示的具体代码,供大家参考,具体内容如下
参考链接:character.unicodeblock中cjk的说明详解
1.关于character.unicodeblock的介绍
cjk的意思是“chinese,japanese,korea”的简写 ,实际上就是指中日韩三国的象形文字的unicode编码
character.unicodeblock.cjk_unified_ideographs : 4e00-9fbf:unicode 编码为 u+4e00~u+9fff 的 cjk 统一文字
character.unicodeblock.cjk_compatibility_ideographs :f900-faff:cjk 兼容象形文字
character.unicodeblock.cjk_unified_ideographs_extension_a :3400-4dbf:cjk 统一表意符号扩展 a
character.unicodeblock.general_punctuation :2000-206f:常用标点
character.unicodeblock.cjk_symbols_and_punctuation :3000-303f:cjk 符号和标点
character.unicodeblock.halfwidth_and_fullwidth_forms :ff00-ffef:半角及全角形式
2.封装
/** * 校验一个字符是否是汉字 * * @param c * 被校验的字符 * @return true代表是汉字 */ public static boolean ischinesechar(char c) { try { return string.valueof(c).getbytes("utf-8").length > 1; } catch (unsupportedencodingexception e) { e.printstacktrace(); return false; } } /** * 验证字符串内容是否包含下列非法字符<br> * `~!#%^&*=+\\|{};:'\",<>/?○●★☆☉♀♂※¤╬の〆 * * @param content * 字符串内容 * @return 't'代表不包含非法字符,otherwise代表包含非法字符。 */ public static char validatelegalstring(string content) { string illegal = "`~!#%^&*=+\\|{};:'\",<>/?○●★☆☉♀♂※¤╬の〆"; char islegalchar = 't'; l1: for (int i = 0; i < content.length(); i++) { for (int j = 0; j < illegal.length(); j++) { if (content.charat(i) == illegal.charat(j)) { islegalchar = content.charat(i); break l1; } } } return islegalchar; } /** * 验证是否是汉字或者0-9、a-z、a-z * * @param c * 被验证的char * @return true代表符合条件 */ public static boolean isrightchar(char c) { return ischinese(c) || isword(c); } /** * 校验某个字符是否是a-z、a-z、_、0-9 * * @param c * 被校验的字符 * @return true代表符合条件 */ public static boolean isword(char c) { string regex = "[\\w]"; pattern p = pattern.compile(regex); matcher m = p.matcher("" + c); return m.matches(); } /** * 判定输入的是否是汉字 * * @param c * 被校验的字符 * @return true代表是汉字 */ 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; } /** * 校验string是否全是中文 * * @param name * 被校验的字符串 * @return true代表全是汉字 */ public static boolean checknamechese(string name) { boolean res = true; char[] ctemp = name.tochararray(); for (int i = 0; i < name.length(); i++) { if (!ischinese(ctemp[i])) { res = false; break; } } return res; }
3.java 判断字符串中是否包含中文并过滤掉中文,请移步文章:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。