C#實現判斷字元是否為中文
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 ></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 ></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 ></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 ></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;
}
}
{
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 ></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 ></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 ></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 ></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;
}
}
相關文章
- python 判斷是否為中文Python
- C#判斷字串是否為日期格式C#字串
- 判斷字串是否為空字串
- python判斷是否為listPython
- PHP 判斷一個字元是否在字串中PHP字元字串
- 判斷字元是否重複正規表示式字元
- isAlnum判斷字元是否為字母數字字元(字母和數字都屬於字母數字字元)字元
- js判斷字串是否含有特殊字元和emoji表情JS字串字元
- sqlserver判斷欄位值是否存在某個字元SQLServer字元
- JavaScript判斷字串是否為空JavaScript字串
- js判斷物件是否為空JS物件
- java判斷物件是否為空Java物件
- Delphi Variant 判斷是否為空
- mysql如何判斷是否為空MySql
- js判斷字串是否為空JS字串
- java判斷字串是否為空Java字串
- Golang 學習——如何判斷 Golang 介面是否實現?Golang
- 如何判斷 JavaScript 物件是否為空?JavaScript物件
- C++判斷是否為閏年C++
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- delphi 判斷類是否實現介面,獲取類實現的介面
- 如何在Java中判斷是否為空Java
- 判斷物件是否為空物件的方式物件
- 判斷是否為環形連結串列
- 如何判斷一個物件是否為空?物件
- postgresql判斷是否為數字的方法SQL
- python如何判斷圖片是否為空Python
- ES6 判斷是否為空物件物件
- 使用Python實現一個棧, 判斷括號是否平衡Python
- C#判斷輸入為數字C#
- J2SE-判斷字串是否為空字串
- JS判斷物件是否為空物件的方法JS物件
- NSPredicate 不能判斷全形字元字元
- 判斷是什麼字元字元
- Java判斷欄位是否為空,為空賦值 ?Java賦值
- c#中判斷類是否繼承於泛型基類C#繼承泛型
- 判斷字串是否唯一字串
- 判斷URL字串是否合法字串
- js系列文章之 : 判斷 object 物件是否為空JSObject物件