300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java中判断字符串是否为汉字或其他字符

java中判断字符串是否为汉字或其他字符

时间:2021-07-07 22:56:12

相关推荐

java中判断字符串是否为汉字或其他字符

在Java中我们需要判断字符串string 是否为合法输入或者是否为中文,Java中对字符及字符串是否为中文的判断调用了Character.UnicodeBlock。在Java中的中文包括:中文汉字、中文输入法下的标点、符号(半角、全角形式区分);在Character.UnicodeBlock中定义了相关的内容如下:

Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS : 4E00-9FBF:CJK 统一表意符号Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS :F900-FAFF:CJK 兼容象形文字Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A :3400-4DBF:CJK 统一表意符号扩展 A;CJK的意思是“Chinese,Japanese,Korea”的简写 ,实际上就是指中日韩三国的象形文字的Unicode编码Character.UnicodeBlock.GENERAL_PUNCTUATION :2000-206F:常用标点Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION :3000-303F:CJK 符号和标点Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS :FF00-FFEF:半角及全角形式

以下列出在java中常用的判断

一个字符是否为汉字;一个字符是否为中文;字符串是否为中文;字符串中是否包含特定字符

源代码

package com.log.main;import java.io.UnsupportedEncodingException;import java.util.regex.Matcher;import java.util.regex.Pattern;public class IsChese {public static void main(String[] args) {// TODO Auto-generated method stubpublic static void main(String[] args) {// TODO Auto-generated method stubchar a = '你';char b = '.';char c = '。';char d = '、';char e = 'a';System.out.println(">>>>>>>>>a:"+isChinese(a));System.out.println(">>>>>>>>>b:"+isChinese(b));System.out.println(">>>>>>>>>c:"+isChinese(c));System.out.println(">>>>>>>>>d:"+isChinese(d));System.out.println(">>>>>>>>>e:"+isChinese(e));}////*** 校验一个字符是否是汉字* * @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';Code1: for (int i = 0; i < content.length(); i++) {//L1定义代码块L1for (int j = 0; j < illegal.length(); j++) {if (content.charAt(i) == illegal.charAt(j)) {isLegalChar = content.charAt(i);break Code1;}}}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 = pile(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;}}

输出结果:

>>>>>>>>>a:true>>>>>>>>>b:false>>>>>>>>>c:true>>>>>>>>>d:true>>>>>>>>>e:false

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。