是不是Substring?
但是我试了试好像Substring只能从指定的字符串起始位置开始,截取n位字符这样
就比如10(2.5)
我写的是str =str.Substring(3,3)这样才能截取出2.5这个数据,
有没有其他方法直接截取出()之间的数据,这样类似8(4)这样字符串长度不一样的也可以很方便的截取出来?
新手,麻烦大家尽量说详细些。谢谢了 

解决方案 »

  1.   

    用split截取啊例如
    string s="10(2.5)";
    s=s.split('(')[0];  //用'('将原来的字符串分成两部分,0 是(前面的,1 是(后面的
      

  2.   

    3Q,3Q,要的就是这个。我只知道Split可以","这样截取- -
      

  3.   

    就是用Substring来截取,方法很简单,先用IndexOf方法定位出开始和结束为止,那么起始点就知道了,结束点减去起始点不就是长度吗?这样Substring的两个参数都知道了,还不能截取吗?
      

  4.   

    n=str.IndexOf("(");
    str.SubString(n,str.IndexOf(")")-n);
      

  5.   

                string str = "10(2.5)";
                string result = str.Substring(str.IndexOf('(')+1, str.IndexOf(')') - str.IndexOf('(') - 1);
                Console.WriteLine(result);
      

  6.   

    或者
                string str = "10(2.5)";
                Regex reg = new Regex(@"(?<=\()[^\)]+(?=\))");
                Console.WriteLine(reg.Match(str).Value);
    不过这种一般直接截取就可以了。
      

  7.   

    如果是想从一个字符串中截取出其中被括号()包围的数字串,应该使用正则表达式,这也正是正则的长处。示例如下,从"2423(2.53)3234"中取出串“2.53”:
    string input = @"2423(2.53)3234";
    string pattern = @"(?:\()(\d+|\d+\.\d+)(?:\))";
    Regex regex = new Regex(pattern);
    Match match = regex.Match(input);if (match.Success)
    Console.WriteLine(match.Groups[1].ToString());
    结果:
    2.53