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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许万里 中级黑马   /  2013-3-9 11:32  /  1778 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎么从一段文本中提取所有的数字。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

5 个回复

倒序浏览
这个题好像在哪里见过?? 额呵呵额
回复 使用道具 举报
string s="abc123cc55c5";
int a;
//用for()+substring()循环读取字符串S中的所有元素
for(int i=0;i<s.length-1;i++)
{
string s1=s.substring(i,1);
//判断是否为整数
if(int.TryParse(s1, out a) != true)
{
console.write(s1);
}
}
console.ReadLine();

这是一种方法,写个大概,其他自己补完。
也可以用正则匹配等。方法很多,还在于各人的理解与喜好。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
Console.WriteLine("请输入一个带有数字的字符串:"); //提示输入一段文本
            
            string str = Console.ReadLine(); //读取文本
            char[] ch = str.ToCharArray();  //将字符串转化成字符数组

            bool flag = true;

            for(int i=0;i< ch.Length;i++)
            {
                //将字符数组的值逐个转化对应的ASCII整数值,然后在0-9这个范围(48-57)内的则是数字
                if (Convert.ToInt32(ch[i]) >= 48 && Convert.ToInt32(ch[i]) <= 57)
                {
                    //输出数字
                    Console.WriteLine("第{0}个数字为{1}", i + 1, ch[i]);
                    flag = false;  //如果有数字则该标志flag=false.
                }
                else
                {
                    //
                }
            }
            if (flag == true )
            {
                Console.WriteLine("该字符串无数字!");
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报

public string IsNum(String str)

    {

        string ss="";

        for (int i = 0; i < str.Length; i++)

        {
            if (Char.IsNumber(str, i) == true)
            {
                ss += str.Substring(i, 1);
            }
            else
            {
                if (str.Substring(i, 1) == ",")
                {
                    ss += str.Substring(i, 1);
                }
            }
        }
        return ss;
    }

Console.Write(IsNum("aaa139504928bbb11ccc,888"));//你们看下效果就知道了.

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
//用正则表达式,很简单的
List<string> list=new List<string>();
string str="abd134dafa134314kjkj4kl1j3k4lj31klj4k3j124kj13l431241343124";//字符串或者文本
MatchCollection mc=Regex.Matches(str,@"\d+");
for(int i=0;i<mc.Count;i++)
{
   list.Add(mc[i].Value);
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

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