一个文本文件里有很多负数,如何把这些负数找出来并替换为零:
1.24124  2.424124   3.1414  -123.42 ...
2.24124  -2.42412   2.31314  231.42 ...
-3.4154  1.422124   2.31314  31.422 ...
...
...
...
...这个文本很大,如何用程序实现快速查找并替换,麻烦给个程序实例!谢谢!!

解决方案 »

  1.   

    string text = "1.24124 2.424124 3.1414 -123.42 2.24124 -2.42412 2.31314 231.42";
    string aa = "";
    string[] arr = text.Split(' ');
    for(int i=0;i<arr.Length;i++)
    {
        if(i==0)
        {
    if(arr[i].IndexOf("-")>=0)
    {
        arr[i] = "0";
    }
    aa = arr[i];
         }
          else
         {
    if(arr[i].IndexOf("-")>=0)
    {
    arr[i] = "0";
    }
         aa += ","+arr[i];
    }
         }
    Response.Write(aa);
      

  2.   

    *.txt 里面的内容如下:
    1.24124  2.424124  3.1414  -123.42 ... 
    2.24124  -2.42412  2.31314  231.42 ... 
    -3.4154  1.422124  2.31314  31.422 ... 
    ... 
    ... 
    ... 
    ... 
    如何用程序实现快速查找负数并替换为零,麻烦给个详细一点的程序!替换后的仍然保存在*.txt中
      

  3.   

    给个示例代码,效率如何不太清楚,功能应该能实现private void button1_Click(object sender, EventArgs e)
            {
                String result = String.Empty;
                using (StreamReader reader = new StreamReader(@"C:\1.txt"))
                {
                    String line = null;
                    while ((line = reader.ReadLine()) != null)
                    {
                        result += ReplaceMinusNumber(line);
                        result += System.Environment.NewLine;
                    }
                    reader.Close();
                }            using (StreamWriter writer = new StreamWriter(@"C:\1.txt"))
                {
                    writer.Write(result);
                    writer.Close();
                }
            }private String ReplaceMinusNumber(string line)
            {
                String result = String.Empty;
                String[] numbers = line.Split(' ');
                for (int i = 0; i < numbers.Length; i++)
                {
                    if (numbers[i].StartsWith("-"))
                    {
                        result += "0 ";
                        continue;
                    }
                    result += numbers[i] + " ";
                }            return result;
            }
      

  4.   

    按照LorenLiu 的代码做  没有错!  保证能够实现你的功能! 
      

  5.   


            private void button1_Click(object sender, EventArgs e)
            {
                string fs = File.ReadAllText("myfile.txt");
                fs=Regex.Replace(fs, @"-(\d)+.(\d)*", "0",RegexOptions.Multiline );
                File.WriteAllText("myfile.txt", fs);
            }