string s = "d$a#31#d$fc$r%22%f$e$r$43@e$65%g$g&d$z";

解决方案 »

  1.   

    你是要怎么个提法?是仅仅把有的数字提出来不关注顺序?
    如果这样的话,那下面的应该就能实现:
    for(int i=0;i<10;i++)
    {
      int flag=s.indexOf(i);
      if(flag!=-1)
         Console.WriteLine(i);
      else continue;
    }
      

  2.   

    string s = "d$a#31#d$fc$r%22%f$e$r$43@e$65%g$g&d$z";
    s=Regex.Replace(s,"\\D+","");
      

  3.   


    var sb=new StringBuilder();
    foreach(char c in s)
    {
    if(c>='0'&&c<='9')
    {
    sb.Append(c);
    }
    }
    return sb.ToString()
      

  4.   

                string s = "d$a#31#d$fc$r%22%f$e$r$43@e$65%g$g&d$z";
                string pattern = @"\d+";
     
                MatchCollection matches = Regex.Matches(s, pattern,RegexOptions.Multiline);    // Split on hyphens
                foreach (Match match in matches)
                {
                    Console.WriteLine("'{0}'", match);
                    Console.ReadLine();
                }
    这样的结果是:31 22 43 65如果string pattern = @"\d";
    则结果是3 1 2 2 4 3 6 5 具体知识上面有提的,正则表达式
      

  5.   

    对了,要
    using System.Text.RegularExpressions;这个命名空间
      

  6.   

    将整形转化成字符型还不简单,toString方法呗
      

  7.   

     错误 1 “string”不包含“indexOf”的定义,并且找不到可接受类型为“string”的第一个参数的扩展方法“indexOf”(是否缺少 using 指令或程序集引用?)
      

  8.   

    indexOf后接的是char或者string
    找的是字符串中符合条件的index
    可以用ElementAt(i)
    如果能转换成int则输出。不能则是-1不处理