A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芦路 中级黑马   /  2012-10-16 18:07  /  2896 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如说,char类型的IsDigit方法可以判断是否为数字;IsLetter方法可以判断是否为字母,那么有没有一种方法是判断是否为汉字的?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
Java中没有自己的方法判断,不过因为汉字在unicode中的编码是从U+4e00   ~   U+9fa5的,你可以截取每一个字符,然后判断其编码是否在这个范围内,是的话就是中文字符。
for(int   i   =0   ;i   <   str.length()-1   ;   i   ++)   
  {   
  System.out.println(str.substring(i,   i+1).matches("[\\u4e00-\\u9fa5]+"));   
  }  

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
....正則表達式吧

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

bool yn=Regex.IsMatch(str,@ "^[\u4e00-\u9fa5]+$ ");
if(yn==true)   
{
MessageBox.Show( "y ");   //含有汉字
}
else
{
MessageBox.Show( "n ");   //不含有汉字
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马