java中如何判断一个字符是否是中文?【最好有代码,省的在去造车子】

tobackfurture 2010-02-22 03:13:35
java中如何判断一个字符是否是中文?【最好有代码,省的在去造车子】
...全文
1003 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
兜兜1900 2012-08-28
  • 打赏
  • 举报
回复
import java.util.regex.*;
public class Test1 {
public static void main(String[] args) {
String s = "中文"; // 正则表达式的匹配
Pattern pa = Pattern.compile("[\u4E00-\u9FA0]*",Pattern.CANON_EQ);
Matcher m = pa.matcher(s);
boolean bool=m.matches();
if(bool){
System.out.println("s中含中文");
}
}
}

8楼的兄弟,您确定这个可以吗?为试了怎么不行啊
grhlove123 2010-02-22
  • 打赏
  • 举报
回复
不错,学习了。。。。。
  • 打赏
  • 举报
回复
引用 10 楼 ddsxkdd 的回复:
www.8now.info/soft/?444063.htm  这里面有解决方案的http://www.8now.info/soft/?444063.htm

广告。。。小心の,
believefym 2010-02-22
  • 打赏
  • 举报
回复
引用 7 楼 zhangkai08111 的回复:
引用 4 楼 tobackfurture 的回复:
引用 3 楼 fengbj312 的回复:
String string = "汉字";
if(string.length() != string.getBytes().length)
  System.out.println("包含汉字");
哥们你太逗了!


这样有什么问题么

多字节的字符多了去了,不止汉字


引用 8 楼 quansheng3510 的回复:
import java.util.regex.*;
public class Test1 {


public static void main(String[] args) {
String s = "中文"; // 正则表达式的匹配
Pattern pa = Pattern.compile("[\u4E00-\u9FA0]*",Pattern.CANON_EQ);
Matcher m = pa.matcher(s);
boolean bool=m.matches();
if(bool){
System.out.println("s中含中文");
}
}
}


要么用find,不要用matches,
要么".*?[\u4e00-9fa5]*.*?"
quansheng3510 2010-02-22
  • 打赏
  • 举报
回复
import java.util.regex.*;
public class Test1 {


public static void main(String[] args) {
String s = "中文"; // 正则表达式的匹配
Pattern pa = Pattern.compile("[\u4E00-\u9FA0]*",Pattern.CANON_EQ);
Matcher m = pa.matcher(s);
boolean bool=m.matches();
if(bool){
System.out.println("s中含中文");
}
}
}
  • 打赏
  • 举报
回复
引用 4 楼 tobackfurture 的回复:
引用 3 楼 fengbj312 的回复:
String string = "汉字";
if(string.length() != string.getBytes().length)
  System.out.println("包含汉字");
哥们你太逗了!

这样有什么问题么
tobackfurture 2010-02-22
  • 打赏
  • 举报
回复
引用 5 楼 cys0429831 的回复:
引用 3 楼 fengbj312 的回复:String string = "汉字"; if(string.length() != string.getBytes().length)   System.out.println("包含汉字");
这个好啊

是绝呀,我没仔细看啊!
cys0429831 2010-02-22
  • 打赏
  • 举报
回复
引用 3 楼 fengbj312 的回复:
String string = "汉字";
if(string.length() != string.getBytes().length)
  System.out.println("包含汉字");

这个好啊
tobackfurture 2010-02-22
  • 打赏
  • 举报
回复
引用 3 楼 fengbj312 的回复:
String string = "汉字";
if(string.length() != string.getBytes().length)
  System.out.println("包含汉字");

哥们你太逗了!
fengbj312 2010-02-22
  • 打赏
  • 举报
回复
String string = "汉字";
if(string.length() != string.getBytes().length)
System.out.println("包含汉字");
knightzhuwei 2010-02-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/zhengjianqi/archive/2008/07/04/2612385.aspx
package test;



import java.util.Random;



public class IsChineseOrEnglish {

// GENERAL_PUNCTUATION 判断中文的“号

// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号

// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号

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;

}



public static void isChinese(String strName) {

char[] ch = strName.toCharArray();

for (int i = 0; i < ch.length; i++) {

char c = ch[i];

if (isChinese(c) == true) {

System.out.println(isChinese(c));

return;

} else {

System.out.println(isChinese(c));

return;

}

}

}

public static void main(String[] args) {

Random r = new Random();

for(int i=0;i<20;i++)

System.out.println(r.nextInt(10)+1);

isChinese("き");

isChinese("中国");

}



}
jypapgl 2010-02-22
  • 打赏
  • 举报
回复
去 unicode 表里面对比啊

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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