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 = 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中判断字符串是否为汉字或其他字符相关推荐
- java中判断字符串是否为数字的方法 StringUtil包函数
java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i &l ...
- java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号
java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...
- java中判断字符串是否为数字(正整数)
标题:java中判断字符串是否为数字(正整数) 遍历s的每一个字符 private boolean isNumeric(String s) {for (int i = 0; i < s.leng ...
- Java中判断字符串是否相等
Java中判断字符串是否相等 相等判断操作符`==` 相等判断方法`equals()` `equals()`方法原理 总结 在最近的开发中,我踩到一个坑,过程是这样的.我需要在Java中判断两个字符串 ...
- java中判断字符串乱码_java中如何判断字符串是否乱码
java中如何判断字符串是否乱码 发布时间:2020-06-18 13:43:41 来源:亿速云 阅读:113 作者:鸽子 项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一 ...
- Java中判断字符串是否为数字的五种方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码 public sta ...
- 关于java中判断字符串相等==和equal 详解
①如果我们定义两个字符串: String c="123"; String d="123"; System.out.println(c==d); ...
- Java中判断字符串是否为空
文章目录 0 写在前面 1 字符串.isEmpty 2 ''.equals(字符串) 3 字符串.length()>0 注意事项 0 写在前面 isEmpty(); "".e ...
- java中判断字符串是否为数字的三种方法
1用JAVA自带的函数 public static boolean isNumeric(String str){for (int i = str.length();--i>=0;){ if (! ...
最新文章
- windows8.1与centos7.0双系统启动项设置
- go语言buffio与继承
- 软件体系结构C2风格
- OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
- 第一节 从面向对象的角度重新认识JS世界
- Web 应用程序渗透测试清单
- 北京市丰台区卫星地图下载
- sparksql 与flinksql 建表 与 连表记录
- 1078 字符串压缩与解压
- GET blob:https://172.0.0.1:80/194d39e8-7254-4fc8-b2d9-81109b8ccc94 net::ERR_ACCESS_DENIED 200 (OK)
- 你“云”了吗?华为云带你看懂云桌面
- 开源电子原型平台 Arduino
- POS机刷卡跨行交易的清算方式
- Clion~Clion常用配置和插件
- Lattice Mico8在LMS创建一个工程和创建LED程序
- HTML基本页面模板
- 干货分享,一个 IP 网段地址!Python
- GNU Autotools [一]
- HBase热点问题简单总结
- 谷歌手动强制同步个更新
热门文章
- 计算机网络与应用上机,计算机网络技术与应用上机实验报告.doc
- Ubuntu零基础教学-Ubuntu20.04安装jdk1.8及环境变量配置【超级详细】
- 老黄怎么看AMD:双方差距已是9和0
- 再度学习大数据技术与应用(厦门大学林子雨)
- SM2国密——前端加密,后端解密(备忘)
- 抖音小店大量封店,你中招了吗?
- 病态线性方程组求解(基于MATLAB)
- 塞纳商务车改装后让人爱不释手
- mousedown mousemove mouseup 与 click事件冲突的解决办法
- POJ 3007 - Organize Your Train part II