这篇文章主要为大家详细介绍了java中文及特殊字符的校验方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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 判断字符串中是否包含中文并过滤掉中文,请移步文章:java 判断字符串中是否包含中文并过滤掉中文
以上就是java中关于特殊字符以及中文的校验方法的详细内容。