黑马程序员技术交流社区

标题: 从字符串中筛选出所有的数字 [打印本页]

作者: liuyinglong    时间: 2013-11-5 03:30
标题: 从字符串中筛选出所有的数字
如果从字符串中筛选出所有的数字,有那些方法可以实现啊,想了好几个代码都不是最精简的,有人说用正则,不过现在还没有学习正则,不用正则的话怎样最简单最快速呢?
作者: 夢醒了⊙﹏⊙b心    时间: 2013-11-5 09:17
亲 可以考虑一下tryparse  循环判断  tryparse 有true和false两个值 为true就是数字  那么你就提取出来
作者: hourglass    时间: 2013-11-5 09:24
循环遍历字符串,判断每个字符是否大于'0'小于'9',不用转换类型,直接比较字符大小即可。
作者: 凤凰涅槃    时间: 2013-11-5 09:28
不知道下面这个方法是不是最简单的,分享一下大家看看吧。。。
  1. string str = "abc1d2e3f4j5k66pp";
  2.             char[] chars = str.ToCharArray();
  3.             int digit = 0;
  4.             for (int i = 0; i < chars.Length; i++)
  5.             {
  6.                 if (chars[i] >= '0' && chars[i] <= '9')
  7.                 {
  8.                     digit++;
  9.                 }
  10.             }
  11.             Console.WriteLine(digit);//运行结果:7
  12.             Console.ReadKey();
复制代码

作者: liuyinglong    时间: 2013-11-5 17:01
凤凰涅槃 发表于 2013-11-5 09:28
不知道下面这个方法是不是最简单的,分享一下大家看看吧。。。

我是要找到到有哪些数字  不是获取到数字的个数  不过可以从你这个上面改进下  把获取到的加入进集合里
作者: 何俞平    时间: 2013-11-5 17:30
//先将字符串转换成字符数组
            string str = "abc1d2e3f4j5k66pp";
            char[] chs = str.ToCharArray();
            //声明一个list<char>类型的泛型集合
            List<char> list = new List<char> { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
            //z逐个判断数组chs的元素是否在集合中,是就输出,不是就不输出
            for (int i = 0; i < chs.Length; i++)
            {
                if (list.Contains(chs[i]))           //集合中有chs[i],chs[i]是数字,输出
                {
                    Console.Write(chs[i] + "\t");
                }
            }
            Console.ReadKey();
作者: SunshineGirl    时间: 2013-11-11 16:51
亲,有同学给你回答问题了,要设置成已解决呀,这样才能加分




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2