当前位置: 移动技术网 > IT编程>开发语言>Java > java中文及特殊字符的校验方法

java中文及特殊字符的校验方法

2019年07月19日  | 移动技术网IT编程  | 我要评论

本文实例为大家分享了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 判断字符串中是否包含中文并过滤掉中文,请移步文章:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网