Java 判断中文字符
2015-07-16 22:05
696 查看
Java判断一个字符串中是否有中文字符有两种方法,但是原理都一样,就是通过Unicode编码来判断,因为中文在Unicode中的编码区间为:0x4e00--0x9fa5
第一种:
[java]
view plaincopyprint?
String chineseStr = "中华人民公社abc";
char[] charArray = chineseStr.toCharArray();
for(int i=0;i<charArray.length;i++){
if ((charArray[i] >= 0x4e00)&&(charArray[i] <= 0x9fa5)){
System.out.println(charArray[i]);
}
}
第二种:
[java]
view plaincopyprint?
String str = "中国chinese";
for (int i = 0; i < str.length(); i++) {
System.out.println(str.substring(i, i + 1).matches("[\\u4e00-\\u9fa5]+"));
}
第三种:
[java]
view plaincopyprint?
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("中国");
}
}
第一种:
[java]
view plaincopyprint?
String chineseStr = "中华人民公社abc";
char[] charArray = chineseStr.toCharArray();
for(int i=0;i<charArray.length;i++){
if ((charArray[i] >= 0x4e00)&&(charArray[i] <= 0x9fa5)){
System.out.println(charArray[i]);
}
}
String chineseStr = "中华人民公社abc"; char[] charArray = chineseStr.toCharArray(); for(int i=0;i<charArray.length;i++){ if ((charArray[i] >= 0x4e00)&&(charArray[i] <= 0x9fa5)){ System.out.println(charArray[i]); } }
第二种:
[java]
view plaincopyprint?
String str = "中国chinese";
for (int i = 0; i < str.length(); i++) {
System.out.println(str.substring(i, i + 1).matches("[\\u4e00-\\u9fa5]+"));
}
String str = "中国chinese"; for (int i = 0; i < str.length(); i++) { System.out.println(str.substring(i, i + 1).matches("[\\u4e00-\\u9fa5]+")); }
第三种:
[java]
view plaincopyprint?
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("中国");
}
}
相关文章推荐
- java开发之可变参数
- java EE之jsp的7个动作指令 复习
- java EE之jsp脚本和3个编译指令 复习
- JDK1.7 file monitor --- watch service api
- [leetcode-210]course scheduleII(java)
- 以Java属性文件的格式创建Hibernate的配置文件和DTD特殊符号作用
- JAVA程序运行时 对象的放置安排及内存的分配
- Eclipse如何设置字体
- Eclipse常用快捷键
- Java并发编程:Callable、Future和FutureTask
- Java - 初始化
- 有效检查Java代码的工具:5款调试工具
- Java锁的种类
- Java--动态代理
- 如何在struts2的action返回结果之后再来进行费时的数据库操作呢?
- spring security (-) helloWorld
- Java中判断字符串是否为数字的五种方法
- spring系列文章(一)AOP源码分析
- java时间格式化问题
- eclipse项目里面的类有时候会莫名其妙出现很多错误