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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁振龙 中级黑马   /  2013-4-20 16:45  /  1907 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 袁振龙 于 2013-4-20 19:05 编辑

这样只能提取出来一个22,后面的数字怎么提取出来。

1.jpg (22.7 KB, 下载次数: 56)

1.jpg

评分

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

查看全部评分

7 个回复

倒序浏览
string str = Substring(x,y);
意思就是从第x元素开始(x从0开始),取y个长度的string.
取出来的是string类型,如果需要计算,还需要转换一下Convert.ToInt32(str);
回复 使用道具 举报
  string str = "大家好,我叫某某,今年22岁,身高178,体重55";
            for (int i = 0; i < str.Length; i++)
            {
                try
                {
                    int n = Convert.ToInt32((str[i]).ToString());
                    Console.WriteLine(n);
                }
                catch
                {

                }
            }      
Console.ReadKey();
数字都出来了~~ 不过是单个的~~
回复 使用道具 举报
我觉得 如果 字符串里面的 数字 是知道具体的位置的话,就按照你那种写法,直接把他们获取出来;
如:
  1. string str = "大家好,我是小龙,我22岁了,身高178,体重55公斤!";
  2.             string str1 = str.Substring(10,2);
  3.             string str2 = str.Substring(17,3);
  4.             string str3 = str.Substring(23,2);
复制代码
回复 使用道具 举报
正则表达式的方法是
  1.    
  2. string str = "大家好,我叫某某,今年22岁,身高178,体重55";
  3. Regex reg = new Regex(@"\d+");
  4.             MatchCollection m = reg.Matches(str,0);
  5.             
  6.             
  7.                 foreach (var item in m)
  8.                 {
  9.                     Console.WriteLine(item);
  10.                 }
  11.             
  12.             Console.ReadKey();
复制代码

评分

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

查看全部评分

回复 使用道具 举报
当然也可以,直接一个一个截取~
  1. Console.WriteLine(str.Substring(11, 2) + str.Substring(17,3) + str.Substring(23,2));
复制代码
回复 使用道具 举报
陈帅 发表于 2013-4-20 18:45
当然也可以,直接一个一个截取~

谢谢了!
回复 使用道具 举报
类似的字符串操作问题,用正则表达式,是做好的选择!  提取用Matches方法就可以搞定了,可以这么做
  1. static void Main(string[] args)
  2. {
  3.     //要操作的字符串
  4.     string str = "大家好,我是小龙,我22岁了,身高178,体重55公斤!";

  5.    //用到的 判别的式子
  6.    // \d 表示0-9之间的一个数,+ 表示前面的字符至少出现一次
  7.    // \d+ 表示0-9的字符至少是一个
  8.    string regex = @"\d+";

  9.   //下面这句才是提取,重点是下面这句,其他的都是陪衬而已,
  10.   MatchCollection mc = Regex.Matches(str,regex);

  11.    //下面的作用是循环遍历输出提取到的数字字符串
  12.    foreach (Match item in mc)
  13.    {
  14.        Console.WriteLine(item);
  15.    }
  16.    Console.ReadKey();
  17. }
复制代码

评分

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

查看全部评分

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