我试图弄清楚如何找到某个字符串并显示它在文本文件中的行数。
例如,假设我试图在文本文件中查找字符串“I'm a string”,然后将字符串的位置(如下行)记录在变量中。
任何人都有任何提示也可以做到这一点?
谢谢
首先,我会读入文件,然后遍历每一行搜索文本。就像是...
string[] lines = System.IO.File.ReadAllLines(@"C:\file.txt");
int count = 0;
foreach (string line in lines)
{
count++;
if (line.indexOf("I'm a string") > -1) {
// found it
}
}
由于这看起来像一个硬件问题,我不会发布完整的解决方案,而只会发布指针和指南。
您基本上想逐个字母地扫描整个文本文件,读取接下来的 n 个字符,其中 n 是您的搜索字符串的长度。如果该集合与您的搜索字符串匹配,那么您就有了答案。您遇到的“\n”数是您必须遍历的行数。
也存在更简单的正则表达式解决方案。您应该尝试查看这些解决方案。
比 ReadAllLines 更好:
public static IEnumerable<string> ReadLines(string path)