想要拆分一段字符串,例如:910.9105 -410.584拆分为910.9105和-410.584(两个数值之间有一个空格)我应该先用IndexOf读取空格的位置吗?然后再用Substring依据空格的位置拆分?

解决方案 »

  1.   

    随手写一写先占个楼
    var str = "910.9105 -410.584";
    var i = str.IndexOf(" ");
    if (i >= 0)
    {
        MessageBox.Show(str.Remove(i));
        MessageBox.Show(str.Substring(i));
    }
      

  2.   

    其实这类问题推荐使用正则来处理
    var matches = Regex.Matches(str, @"(+|-)?\d+(.\d+)");
    foreach(Match m in matches)
    {
        Console.WriteLine(m.Value);
    }还有一种处理将分隔符的字符串处理成数值的
    var arr = str.Split(' '); //arr[0]和arr[1]即是结果
      

  3.   

    直接用spiltstring s="910.9105 -410.584";foreach(string str in s.Spilt(' '))
    {
        Console.WriteLine(str);
    }
      

  4.   


    漏写了个符号。
    @"(+|-)?\d+(.\d+)" -> @"(+|-)?\d+(.\d+)?"
      

  5.   


        static void Main()
        {
            string s = "12   34 -56    90";
            string[] r = s.Split(new string[1]{" "}, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < r.Length; ++i)
            {
                Console.WriteLine(r[i]);
            }
        }运行结果:
    12
    34
    -56
    90
      

  6.   

    我是新手,问一下这个split后面的参数是不是就是要寻找的分隔位置
      

  7.   


    分割的东东可以有很多,比如下面的就可获取 被 abc 或 xxx 分割的字符串string[] r = s.Split(new string[2]{"abc","xxx"}, StringSplitOptions.RemoveEmptyEntries);