字符窜中提取中文的方法

string str="求11从字345符。串asd中提:取中“文的;方,法;",s="";

for(int  i=0;i <str.Length;++i) 
{
  char j=(char)str[i];
  if  (IsChineseChar(j)!=false) 
  { 
  s+=j;
  }
}

bool  IsChineseChar(char ch) 

  byte[]  bytes  =  System.Text.Encoding.GetEncoding("gb2312").GetBytes(ch.ToString()); 
   
  if  (bytes.Length  !=  2) 
  { 
  return  false; 
  } 
   
  int  zone  =  bytes[0]; 
  int  num    =  bytes[1]; 
   
  return  (zone  >=  0xB0  &&  zone  <=0xF7)  &&  (num  >0xA0  &&  num <0xFD); 
}

 

2、//使用正则,记得导入using System.Text.RegularExpressions;
string str= "==从==字符串==中==提取==中文==的==方法!";
MatchCollection mc
= Regex.Matches(str,"([/u4e00-/u9fa5]+)");
foreach (Match min mc)
MessageBox.Show(m.Groups[
1].Value);

3、用正则,替换掉所有非中文内容

4、用正则过滤出MatchCollection结果集,然后foreach循环,用StringBuilder.Appent()连接起来就OK了

5、string   str="求11从字345符。串asd中提:取中“文的;方,法;";
str
=Regex.Replace(str,"([^/u4e00-/u9fa5])","");
6、Sub Test3()
    Dim S, i, t
    Text = "asdfghjkl教你提取字符$%^&*()123~`45串中中文的方法qwertyuio!!!"
    S = ""
    For i = 1 To Len(Text)
        '漢字小于ASC值0﹐否則在0-127之間
        If Asc(Mid(Text, i, 1)) < 0 Then
            S = S & Mid(Text, i, 1)
        End If
    Next i
    Debug.Print S
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值