`
linwei_211
  • 浏览: 191612 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

判断字符串中是否含有中文

    博客分类:
  • java
阅读更多
//判断字符串中是否含有中文
          public  static  boolean  hasFullSize(String  inStr)  
          {  
                  if (inStr.getBytes().length != inStr.length())  
                  {  
                          return  true;  
                  }  
                  return  false;  
          }
         
  判斷字符串中是否含有中文字符
一般是利用ASC碼來判斷字符是中文還是英文,如果是中文,ASC碼小于0,而英文則是大于0。依據這個思路,相應的VB code如下:

Private Function HasChineseInString()Function HasChineseInString(textstring As String) As Boolean
   
    Dim i As Integer
    For i = 1 To Len(textstring)
       If Asc(Mid(textstring, i, 1)) < 0 Then
            ' if chiness
            HasChineseInString= True
            Exit function
       End If
    Next
   
    HasChineseInString=False
End Function
判断java字符串中是否含有中文字符2009-06-09 10:43判断java中是否含有中文字符

/**
     * @version Created on 2009-6-09, 9:45:56
     * @author zsh
     * 判断是否今有中文字符
     * @param value
     * @return boolean
     */
    public static boolean isIncludeChanse(String value)
    {
            String anotherString = null;
            try {
            anotherString = new String(value.getBytes("GBK"), "ISO8859_1");
            }
            catch (java.io.UnsupportedEncodingException ex) {
            }
            //System.out.println(aString.length() + "," + anotherString.length());
            return value.length()!=anotherString.length(); //两个长度值不相等是说明是今有中文字符
     }

方法 二

public   static   boolean   IsChinese(char   c)
{
return   (int)c   >=   0x4E00   &&   (int)c   <=   0x9FA5;
}
方法 三  正则表达式
Java代码
String s="大牛这孩";  
Pattern pattern=Pattern.compile("[\u4e00-\u9fa5]");  
Matcher matcher=pattern.matcher(s);  
System.out.println(matcher.matches()); 

---------------------------------------------------------------------
判断字符串是否是中文 收藏
方法一:
原文:http://www.soave.cn/blog/article.asp?id=232
在unicode 字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。
通过对字符的unicode编码进行判断来确定字符是否为中文。

protected bool  IsChineseLetter(string input,int index)
{
        int code = 0;
        int chfrom = Convert.ToInt32("4e00", 16);    //范围(0x4e00~0x9fff)转换成int(chfrom~chend)
        int chend = Convert.ToInt32("9fff", 16);
        if (input != "")
        {
            code = Char.ConvertToUtf32(input, index);    //获得字符串input中指定索引index处字符unicode编码
           
           if (code >= chfrom && code <= chend)    
            {
                return true;     //当code在中文范围内返回true
            }
            else
            {
                 return false ;    //当code不在中文范围内返回false
            }
        }
        return false;
}
方法二:

public bool IsChina(string CString)
          {
              bool BoolValue = false;
              for (int i = 0; i < CString.Length; i++)
              {
                  if (Convert.ToInt32(Convert.ToChar(CString.Substring(i, 1))) < Convert.ToInt32(Convert.ToChar(128)))
                  {
                      BoolValue = false;
                  }
                  else
                  {
                      return BoolValue = true;
                  }
              }
              return BoolValue;
          }
方法三:

**/**///// <summary>
        /// 判断句子中是否含有中文
        /// </summary>
        /// <param >字符串</param>
        public bool WordsIScn(string words)
        {
            string TmmP;
            for (int i = 0; i < words.Length; i++)
            {
                TmmP = words.Substring(i, 1);
                byte[] sarr = System.Text.Encoding.GetEncoding("gb2312").GetBytes(TmmP);
                if (sarr.Length == 2)
                {
                    return true;
                }
            }
            return false;
        }
方法四:

for (int i=0; i<s.length; i++)
{
Regex rx = new Regex("^[\u4e00-\u9fa5]$");
if (rx.IsMatch(s[i]))
// 是
else
// 否
}
正解!
\u4e00-\u9fa5 汉字的范围。
^[\u4e00-\u9fa5]$ 汉字的范围的正则
方法五:

unicodeencoding   unicodeencoding   =   new   unicodeencoding(); 
  byte   []   unicodebytearray   =   unicodeencoding.getbytes(   inputstring   ); 
  for(   int   i   =   0;   i   <   unicodebytearray.length;   i++   ) 
  { 
  i++; 
  //如果是中文字符那么高位不为0 
  if   (   unicodebytearray[i]   !=   0   ) 
  { 
  } 
  ……  


方法六:

/**//**//**//// <summary>
        /// 给定一个字符串,判断其是否只包含有汉字
        /// </summary>
        /// <param name="testStr"></param>
        /// <returns></returns>
        public bool IsOnlyContainsChinese(string testStr)
        {
            char[] words = testStr.ToCharArray();
            foreach (char word in words)
            {
                if ( IsGBCode(word.ToString()) || IsGBKCode(word.ToString()) )  // it is a GB2312 or GBK chinese word
                {
                    continue;
                }
                else
                {
                    return false;
                }
            }
            return true;
        }

        /**//**//**//// <summary>
        /// 判断一个word是否为GB2312编码的汉字
        /// </summary>
        /// <param name="word"></param>
        /// <returns></returns>
        private bool IsGBCode(string word)
        {
            byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(word);
            if (bytes.Length <= 1)  // if there is only one byte, it is ASCII code or other code
            {
                return false;
            }
            else
            {
                byte byte1 = bytes[0];
                byte byte2 = bytes[1];
                if (byte1 >= 176 && byte1 <= 247 && byte2 >= 160 && byte2 <= 254)    //判断是否是GB2312
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

        /**//**//**//// <summary>
        /// 判断一个word是否为GBK编码的汉字
        /// </summary>
        /// <param name="word"></param>
        /// <returns></returns>
        private bool IsGBKCode(string word)
        {
            byte[] bytes = Encoding.GetEncoding("GBK").GetBytes(word.ToString());
            if (bytes.Length <= 1)  // if there is only one byte, it is ASCII code
            {
                return false;
            }
            else
            {
                byte byte1 = bytes[0];
                byte byte2 = bytes[1];
                if ( byte1 >= 129 && byte1 <= 254 && byte2 >= 64 && byte2 <= 254)     //判断是否是GBK编码
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }



        /**//**//**//// <summary>
        /// 判断一个word是否为Big5编码的汉字
        /// </summary>
        /// <param name="word"></param>
        /// <returns></returns>
        private bool IsBig5Code(string word)
        {
            byte[] bytes = Encoding.GetEncoding("Big5").GetBytes(word.ToString());
            if (bytes.Length <= 1)  // if there is only one byte, it is ASCII code
            {
                return false;
            }
            else
            {
                byte byte1 = bytes[0];
                byte byte2 = bytes[1];
                if ( (byte1 >= 129 && byte1 <= 254) && ((byte2 >= 64 && byte2 <= 126) || (byte2 >= 161 && byte2 <= 254)) )  //判断是否是Big5编码
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }



分享到:
评论
1 楼 woshabulaji 2013-05-17  
/**//**//**//// <summary>
        /// 判断一个word是否为GBK编码的汉字
用了下这个 cannot find symbol
symbol  : variable Encoding 一直报错呢 楼主帮忙分析下?

相关推荐

    PB判断字符串是否有中文

    ### PB判断字符串是否有中文 在PowerBuilder(简称PB)开发中,经常需要处理各种各样的字符串,其中就包括判断一个字符串是否包含中文字符。这对于实现国际化应用、进行文本分析等功能非常有用。本文将详细介绍两种...

    字符串中是否包含中文

    1. **中文符号**:如果需要判断字符串中是否包含中文符号,可以使用更广泛的Unicode范围,例如`[\u3002\uff1b\uff0c\uff1a\u201c\u201d\u2018\u2019]`等。 2. **特殊字符处理**:在实际应用中,还需要考虑到特殊字符...

    判断字符串是否含中文

    对于给定任意的字符串,如何快速的判断该字符串中是否包含汉字。

    快速判断是字符串是否含中文

    快速判断字符串包含中文,通过字符串长度比较,高效率判断是否含有中文字符。

    Delphi 判断字符串中是否有中文.rar

    总的来说,Delphi 中判断字符串中是否有中文字符涉及到对字符编码的理解以及字符串处理的技巧。通过解析字节模式,我们可以有效地检测到字符串中的中文字符,这对于本地化应用或者文本处理算法的设计都是必不可少的...

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

    ### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...

    判断字符串有多少个汉字和标点符号

    #### 四、判断字符串中有多少个汉字和标点符号 根据题目描述,我们需要实现一个方法来统计字符串中汉字和标点符号的数量。具体步骤如下: 1. **定义方法 `isChinese(char c)`**:此方法用于判断单个字符是否为汉字...

    mfc 字符串中查找特殊字符 利用特殊字符分割字符串

    mfc 字符串中查找特殊字符 利用特殊字符分割字符串 mfc 字符串中查找特殊字符 利用特殊字符分割字符串 mfc 字符串中查找特殊字符 利用特殊字符分割字符串 mfc 字符串中查找特殊字符 利用特殊字符分割字符串 mfc 字符...

    易语言判断文本中是否有中文源码

    标题所提及的问题是关于“易语言判断文本中是否有中文源码”,这涉及到字符串处理和正则表达式的应用。 首先,我们要理解什么是中文源码。源码是指程序员用某种编程语言编写的源程序,它是未经过编译或解释的代码。...

    C#实现判断字符串中是否包含中文的方法

    在进行软件开发过程中,判断字符串中是否包含中文是一项基础而实用的功能,尤其在处理文本数据时显得尤为重要。在C#中,我们可以通过使用正则表达式来实现这一功能,因为正则表达式提供了强大的文本匹配能力。 首先...

    java 字符串中文判断

    至于判断字符串中是否有连续的中文字符,我们可以稍微修改上述代码,添加一个额外的条件来检查当前字符和下一个字符是否都是中文。这里是一个可能的实现: ```java public static boolean hasConsecutiveChinese...

    python 判断字符串中是否含有汉字或非汉字的实例

    model中compile值可以根据需要更改,满足不同的检测需求 #判断一段文本中是否包含简体中文 import re zhmodel = re.compile(u'[\u4e00-\u9fa5]') #检查中文 ...以上这篇python 判断字符串中是否含

    labview判断 英文还是汉字

    labview判断 英文还是汉字

    Go 验证字符串中是否包含中文(推荐)

    1. **方法一**:仅使用`unicode`包来判断字符串是否包含汉字。 2. **方法二**:结合使用`unicode`和`regexp`包,不仅能够判断汉字,还能识别一些中文标点符号。 这两种方法各有优势:第一种方法简单且速度快,适合...

    Android判断字符串中是否含字母、中文或数字

    文章结尾提到了Java代码示例,提供了一种判断字符串中是否必须包含数字、字母和中文字符的方法,并且也提供了另一种通过正则表达式在Android `EditText`中判断输入字符串的方法。最后,文章鼓励读者参考这些方法,并...

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

    之前一个朋友问我,如何判断字符串中是否包含中文,其实解决的方法很简单,但觉着有必要写出给不知道的朋友们以参考,所以下面这篇文章主要介绍了利用Java正则表达式判断字符串中是否包含中文的方法,需要的朋友可以...

    java 判断字符串是否是中文

    在Java中,我们可以利用这些特性来判断字符串中的每个字符是否属于中文字符。 以下是一种简单的Java方法,用于判断字符串是否全部由中文字符组成: ```java public static boolean isAllChinese(String str) { ...

    Java 判断字符串中是否包含中文的实例详解

    Java 判断字符串中是否包含中文的实例详解 Java 中判断字符串中是否包含中文是非常重要的功能,在实际开发中经常会遇到这种需求。下面我们来详细介绍如何使用 Java 实现字符串中是否包含中文的判断。 首先,我们...

Global site tag (gtag.js) - Google Analytics