A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李国龙 中级黑马   /  2013-5-20 16:26  /  1865 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

现在有这样的一组字符hj@jhjk@hjkh$hjkhk$hjkhk$kljlk$khkj@jkhk$hkjjk$hjkhkd$gjkshdk$jklkl@kkjk我怎么取出其中的字母啊,

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

5 个回复

正序浏览
string str = "hj@jhjk@hjkh$hjkhk$hjkhk$kljlk$khkj@jkhk$hkjjk$hjkhkd$gjkshdk$jklkl@kkjk";
            char[] removeChar = {' '@'$"};
           string[] words = str.Split(removeChar,StringSplitOptions.RemoveEmptyEntries);
还可以这样写:string[] words = str.Split(‘,’,’?’’!’);//这行代码也可以去掉那些字符(?/!/,),但不能去除空格(‘ ’)。
            Console.WriteLine("这a句?话°共有{0}个单词?,words.Length);
            Console.WriteLine("这a几?个?单词分别为:");
            for (int i = 0; i < words.Length; i++)
            {
                Console.WriteLine(words[i]);
            }
回复 使用道具 举报
string str = "How  are  you?Fine,Thank   you!";             char[] removeChar = {' ','?',',','!'};            string[] words = str.Split(removeChar,StringSplitOptions.RemoveEmptyEntries); 还可以这样写:string[] words = str.Split(‘,’,’?’’!’);//这行代码也可以去掉那些字符(?/!/,),但不能去除空格(‘ ’)。             Console.WriteLine("这a句?话°共有{0}个单词?,words.Length);             Console.WriteLine("这几个单词分别为:");             for (int i = 0; i < words.Length; i++)             {                 Console.WriteLine(words[i]);             }
回复 使用道具 举报
用正则表达式
  1. string str = "hj@jhjk@hjkh$hjkhk$hjkhk$kljlk$khkj@jkhk$hkjjk$hjkhkd$gjkshdk$jklkl@kkjk";
  2.             //正则表达式字符串
  3.             string regDigit = @"[a-zA-Z]+";
  4.             MatchCollection matches = Regex.Matches(str, regDigit);//提取所有字母
  5.             //循环遍历
  6.             foreach (Match item in matches)
  7.             {
  8.                 //如果个数>0表示有字母
  9.                 if (matches.Count>0)
  10.                 {
  11.                     Console.WriteLine(item.Value);                           
  12.                 }
  13.             }
  14.             Console.ReadKey();
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 shenge321 于 2013-5-20 17:20 编辑

winform下。方法是用正则实现。

命名空间
  1. using System.Text.RegularExpressions;//使用正则时调用
复制代码
具体代码
  1.             string str = lbyuanzifu.Text;//获取原始字符串
  2.             string word = "";//存储取出的字母
  3.             int j = 0;//计数非字母字符个数
  4.             for (int i = 0; i < str.Length; i++)
  5.             {
  6.                 string pattren = @"[A-Za-z]";//为英文字母时的正则
  7.                 Match mc = Regex.Match(str[i].ToString(), pattren);
  8.                 if (mc.Success)//索引为i时,该字符为字母
  9.                 {
  10.                     word = word + str[i].ToString();
  11.                 }
  12.                 else
  13.                     j++;
  14.             }
  15.             lbchulihou.Text = "处理后字符串:" + word + "\r\n处理后字符串长度:" + word.Length.ToString() + "\r\n处理前字符串长度:" + str.Length.ToString() + "\r\n非字母字符长度:" + j;
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
String[] split(String regex)
  拆分

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马