Java如何判断一个字符串是否为纯中文?

qq_37620685 2017-02-27 01:24:57
是纯中文,如题,给段链接或代码都行。
...全文
783 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tadman 2020-10-16
  • 打赏
  • 举报
回复
0x4E00-0x9FA5 是中文基础库只有两万多汉字,现在客户那边出现了特殊字符,在汉字扩展库中,怎么办
  • 打赏
  • 举报
回复

public static boolean isChinese(String input){		
		return input.matches("^[\u4e00-\u9fa5]+$");
	}
zs808 2017-02-28
  • 打赏
  • 举报
回复
根据中文在Unicode编码表中的区间位置来进行判断即可,示例代码:
	public static boolean isAllChinese(String str){
		for (int i = 0; i < str.length(); i++) {  //遍历所有字符
			char ch = str.charAt(i);
			if(ch < 0x4E00 ||ch > 0x9FA5){  //中文在unicode编码中所在的区间为0x4E00-0x9FA5
				return false;  //不在这个区间,说明不是中文字符,返回false
			}
		}
		
		return true;  //全部在中文区间,说明全部是中文字符,返回true
	}
	
	public static void main(String[] args) {
		System.out.println(isAllChinese("你好世界"));  //true
		System.out.println(isAllChinese("hello世界"));  //false
		System.out.println(isAllChinese("你好word"));  //false
		System.out.println(isAllChinese("你好 世界"));  //false
	}
月明星稀灬 2017-02-28
  • 打赏
  • 举报
回复
通过判断unicode编码的位置。
valentinath1989 2017-02-27
  • 打赏
  • 举报
回复
public boolean isChinese(char c) { return c >= 0x4E00 && c <= 0x9FA5; }
jiajing1990_ 2017-02-27
  • 打赏
  • 举报
回复
return Pattern.compile("^[\u4e00-\u9fa5]+$").matcher(name).matches();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧