使用字符串生成器,我已经读取了一个文件..如何找到文件中是否存在给定的字符串?

时间:2012-03-20 11:12:05

标签: c# .net c#-4.0 c#-3.0

我已经将文件读入StringBuilder。 当我给一个字符串作为输入时,如果文件中存在该单词,则输出应为true ..如果它不存在,则应该为false ..我该怎么做?有人可以帮我代码吗?我已经把程序写到了这里..我怎么走得更远?非常感谢.. :))

class Program
{
    static void Main(string[] args)
    {
        using (StreamReader Reader = new StreamReader("C://myfile2.txt"))
        {
            StringBuilder Sb = new StringBuilder();
            Sb.Append(Reader.ReadToEnd());
            {
                Console.WriteLine("The File is read");   
            }
        }
    }
}

5 个答案:

答案 0 :(得分:5)

单行如何:

 bool textExists = System.IO.File.ReadAllText("C:\\myfile2.txt").Contains("Search text");

应该这样做:)

答案 1 :(得分:2)

using (System.IO.StreamReader Reader = new System.IO.StreamReader("C://myfile2.txt"))
{
      string fileContent = Reader.ReadToEnd();
       if (fileContent.Contains("your search text"))
           return true;
       else
           return false;
}

答案 2 :(得分:2)

在您显示的示例中 - 首先没有点加载到StringBuilder。您已经在调用StreamReader.ReadToEnd时返回整个字符串,因此您也可以检查它是否包含您的子字符串。

如果你更改改变字符串,StringBuilder非常有用 - 但在这个用例中,你不是。

这个怎么样:

private bool FileContainsString(string file, string substring)
{
    using (StreamReader reader = new StreamReader("C://myfile2.txt"))
    {
        return reader.ReadToEnd().Contains(substring);
    }
}

如果你肯定想要字符串构建器,那么就像这样:

private bool FileContainsString(string file, string substring)
{
    using (StreamReader reader = new StreamReader("C://myfile2.txt"))
    {
        var sb = new StringBuilder(reader.ReadToEnd());
        return sb.ToString().Contains(substring);
    }
}

但在这个特定场景中,StringBuilder实际上并没有做任何有用的事情。

答案 3 :(得分:1)

您可以使用File.ReadAllText将整个文件读取为字符串。请注意,这会立即加载整个文件,因此如果文件很大,则会占用大量内存:

string content = File.ReadAllText(@"C:\myfile2.txt");
Console.WriteLine(content.Contains("needle"));

如果needle不跨越多行,您可以使用:

IEnumerable<string> content = File.ReadLines(@"C:\myfile2.txt");
Console.WriteLine(content.Any(line => line.Contains("needle")));

这只需要一次在内存中保留一行,然后缩放到更大的文件。

答案 4 :(得分:-1)

将其分配给字符串,然后检查它是否包含子字符串。

dim str as string
str = sb.tostring()
if str.contains("string") then
 'code
else
 'code
end if