[JAVA工具]判断字符串是否为中文

package com.airchina.test;

public class IsChineseOrNot {
	 // GENERAL_PUNCTUATION 判断中文的“号
	 // CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
	 // HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
	 private static final 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 final boolean isChinese(String strName) {
	  char[] ch = strName.toCharArray();
	  for (int i = 0; i < ch.length; i++) {
	   char c = ch[i];
	   if (isChinese(c)) {
	    return true;
	   }
	  }
	  return false;
	 }
	 public static void main(String[] args) {
	  System.out.println(isChinese("き"));
	  System.out.println(isChinese("test,.?!%^&*(){}[]"));
	  System.out.println(isChinese("测试"));
	  System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));
	 }
	 public static final boolean isChineseCharacter(String chineseStr) {
	  char[] charArray = chineseStr.toCharArray();
	  for (int i = 0; i < charArray.length; i++) {
	   if ((charArray[i] >= 0x4e00) && (charArray[i] <= 0x9fbb)) {
	    return true;
	   }
	  }
	  return false;
	 }
	 /**
	  * @deprecated; 弃用。和方法isChineseCharacter比效率太低。
	  * */
	 public static final boolean isChineseCharacter_f2() {
	  String str = "!?";
	  for (int i = 0; i < str.length(); i++) {
	   if (str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+")) {
	    return true;
	   }
	  }
	  return false;
	 }
	}
时间: 2024-10-30 22:09:36

[JAVA工具]判断字符串是否为中文的相关文章

Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享_Lua

一.判断字符串中包含中文字符的方法 遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码. 二.计算字符串宽度函数 复制代码 代码如下: -- 计算字符串宽度   local str = "Jimmy: 你好,世界!" local fontSize = 20 local lenInByte = #str local width = 0   for i=1,lenInByte do     local curByte = string.by

Java中判断字符串是中文或者英文的工具类分享_java

直接上代码: 复制代码 代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /**  *  * <p>  * ClassName ShowChineseInUnicodeBlock  * </p>  * <p>  * Description 提供判断字符串是中文或者是英文的一种思路  * </p>  *  * @author wangxu wangx89@126.com

Java中判断字符串是否为数字的五种方法 (转)

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){      for (int i = str.length();--i>=0;){         if (!Character.isDigit(str.charAt(i))){        return false;       }      }      return true;    }   public static b

c#判断字符串是否是中文问题

问题描述 publicboolCheckChinese(stringstr){boolflag=false;UnicodeEncodinga=newUnicodeEncoding();byte[]b=a.GetBytes(str);for(inti=0;i<b.Length;i++){i++;if(b[i]!=0){flag=true;}else{flag=false;}}returnflag;}这段代码为什么能实现判断是否为中文,求详细解释,可以加分,详细.. 解决方案 解决方案二:你找个字符

判断字符串是否为中文

下面简单的介绍了php教程和asp教程.net来判断字符串是否含有中文的代码. $str = "中文"; if (preg_match("/[x7f-xff]/", $str)) { echo "含有中文"; }else{ echo "没有中文"; } 或 $pattern = '/[^x00-x80]/'; if(preg_match($pattern,$str)){ echo "含有中文"; }else

Java 判断字符串是否包含中文正则表达式

注意:Java的字符串要先对\做转义-- 其次是因为matcher.matches()没用对.这个方法等同于自动在pattern的前后加上^和$,显然这个字符串超过了长度1,所以匹配失败了.用matcher.find()或者matcher.lookingAt()都可以. 例  代码如下 复制代码 public static boolean isContainChinese(String str) {     Pattern p=Pattern.compile("[u4e00-u9fa5]&quo

asp.net判断字符串是否是中文的方法_实用技巧

任何字符在unicode编码中都占用两个字节.而在一般编码方式中英文字符可以用一个字节表示,中文要用两个.这样英文字符在unicode编码中多占用了一个没有用的字节,这个没用字节就用0代替.如果unicode编码中字符的第一个字节是0那他就是英文字符.不是0他就可能是除了英文字符之外的很多种语言的文字,不仅仅是中文. 复制代码 代码如下: View Code public bool CheckChinese(string str)        {            bool flag =

Java判断字符串中是否包含中文方法_java

今天和同事在讨论一个问题,需要检查"输入的字符串中是否包含中文",刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符.数字.特殊字符,一时也没想出能匹配该场景的正则表达式,后来在网上搜了下,可以使用Matcher类来解决该问题,大致的代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

java判断字符串是否为数字或中文或字母

个人认为最好的方法 *各种字符的unicode编码的范围:      * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])      * 数字:[0x30,0x39](或十进制[48, 57])      *小写字母:[0x61,0x7a](或十进制[97, 122])      * 大写字母:[0x41,0x5a](或十进制[65, 90]) public static boolean isLetterDigitOrChinese(String str) { Stri