在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 = 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;}}

输出结果:

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

java中判断字符串是否为汉字或其他字符相关推荐

  1. java中判断字符串是否为数字的方法 StringUtil包函数

    java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){   for (int i = 0; i &l ...

  2. java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号

    java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...

  3. java中判断字符串是否为数字(正整数)

    标题:java中判断字符串是否为数字(正整数) 遍历s的每一个字符 private boolean isNumeric(String s) {for (int i = 0; i < s.leng ...

  4. Java中判断字符串是否相等

    Java中判断字符串是否相等 相等判断操作符`==` 相等判断方法`equals()` `equals()`方法原理 总结 在最近的开发中,我踩到一个坑,过程是这样的.我需要在Java中判断两个字符串 ...

  5. java中判断字符串乱码_java中如何判断字符串是否乱码

    java中如何判断字符串是否乱码 发布时间:2020-06-18 13:43:41 来源:亿速云 阅读:113 作者:鸽子 项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一 ...

  6. Java中判断字符串是否为数字的五种方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public sta ...

  7. 关于java中判断字符串相等==和equal 详解

    ①如果我们定义两个字符串: String c="123";         String d="123"; System.out.println(c==d); ...

  8. Java中判断字符串是否为空

    文章目录 0 写在前面 1 字符串.isEmpty 2 ''.equals(字符串) 3 字符串.length()>0 注意事项 0 写在前面 isEmpty(); "".e ...

  9. java中判断字符串是否为数字的三种方法

    1用JAVA自带的函数 public static boolean isNumeric(String str){for (int i = str.length();--i>=0;){ if (! ...

最新文章

  1. windows8.1与centos7.0双系统启动项设置
  2. go语言buffio与继承
  3. 软件体系结构C2风格
  4. OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
  5. 第一节 从面向对象的角度重新认识JS世界
  6. Web 应用程序渗透测试清单
  7. 北京市丰台区卫星地图下载
  8. sparksql 与flinksql 建表 与 连表记录
  9. 1078 字符串压缩与解压
  10. GET blob:https://172.0.0.1:80/194d39e8-7254-4fc8-b2d9-81109b8ccc94 net::ERR_ACCESS_DENIED 200 (OK)
  11. 你“云”了吗?华为云带你看懂云桌面
  12. 开源电子原型平台 Arduino
  13. POS机刷卡跨行交易的清算方式
  14. Clion~Clion常用配置和插件
  15. Lattice Mico8在LMS创建一个工程和创建LED程序
  16. HTML基本页面模板
  17. 干货分享,一个 IP 网段地址!Python
  18. GNU Autotools [一]
  19. HBase热点问题简单总结
  20. 谷歌手动强制同步个更新

热门文章

  1. 计算机网络与应用上机,计算机网络技术与应用上机实验报告.doc
  2. Ubuntu零基础教学-Ubuntu20.04安装jdk1.8及环境变量配置【超级详细】
  3. 老黄怎么看AMD:双方差距已是9和0
  4. 再度学习大数据技术与应用(厦门大学林子雨)
  5. SM2国密——前端加密,后端解密(备忘)
  6. 抖音小店大量封店,你中招了吗?
  7. 病态线性方程组求解(基于MATLAB)
  8. 塞纳商务车改装后让人爱不释手
  9. mousedown mousemove mouseup 与 click事件冲突的解决办法
  10. POJ 3007 - Organize Your Train part II