从StringReader中删除字符串

时间:2015-05-26 00:22:12

标签: c#

所以我正在尝试从文件中读取一些行,如果该行包含要跳过的特定字符串,则打印该行。

while ((line = sr.ReadLine()) != null)
{
    if (line.Contains("(tst)"))   
        Console.WriteLine(line);
}

如果我的行是“lorem tst a btst c” 如何让它显示为“lorem a b c”?

2 个答案:

答案 0 :(得分:1)

您的行变量属于string类型,因此请使用其内置的Replace函数。

更新

使用正则表达式替换字符串中间的任何多余空格。

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        Regex regex = new Regex(@"[ ]{2,}", RegexOptions.None);     

        string test = "lorem tst a btst c tst tst tst tst a";
        Console.WriteLine(regex.Replace(test.Replace("tst", ""), @" "));
    }
}

结果:

  

lorem a b c a

请参阅此处的工作示例... https://dotnetfiddle.net/BXDZs6

答案 1 :(得分:0)

对于您想要的确切结果有点困惑,但String.Replace()可能就是您所追求的。

while ((line = sr.ReadLine()) != null)
{
    if (line.Contains("tst")) {
        string line = line.Replace("tst", "");
        Console.WriteLine(line);
    }
}