假设我有一个包含多行的文件:
En;15;
Vu;
US;32;
我需要检查字符串VU
是否包含在内,所以我做了:
string text = @"En;15;
Vu;
US;32;"
var exist = text.Contains("Vu");
这将返回true
,但我还需要检查Vu
的行是否仅包含Vu
或其他内容作为其他行。我怎样才能做到这一点?感谢。
更新
如果该行还包含其他元素则应返回false
答案 0 :(得分:0)
假设在你的输入中有一条"换行符"是" \ n",假设一行中的东西被";"分开,那么:
1)将文本分成单独的行
2)对于每一行,将该行分成由";";";分隔的片段
3)对于每个折线,检查每个部分,看看是否有Vu
4)..如果是的话,嘿,你发现它了
5)..如果该断线只有1件,嘿,这是单个Vu
代码:
1) @"文本 那 具有 line" .Split(" \ n")==> 4行数组
2) " linethat; has; pieces" .Split(";")===>数组3件
3)"每个"是一个foreach
循环。你需要一个用于线条,一个用于零件。一个在另一个里面。
4)拆分删除分隔符,所以&#34 ;;"不会出现在一块中,所以if(piece == "Vu")
5)"件"是字符串数组,因此if(pieces.Length==1)
表示该行有一个单件
现在你有了所有的位,只需正确使用它们。
答案 1 :(得分:0)
将字符串拆分为数组,并且可以使用Split()
方法将所有行分隔为字符串数组中的单独索引
使用代表新行的分隔符'\ n':
static void Main(string[] args)
{
string stringfromfile = @"En;
15;
Vu;
US;
32;";
string[] ar = stringfromfile.Split('\n');
// remove ";" character and fix white space for safety
for (int i = 0; i < ar.Length; i++)
{
ar[i] = ar[i].Replace(";","").Trim();
}
if (ar.Contains("Vu"))
{
Console.WriteLine("TRUE");
}
else
{
Console.WriteLine("FALSE");
}
foreach (var itm in ar)
{
Console.WriteLine(itm);
}
Console.ReadLine();
}
答案 2 :(得分:0)
您可以尝试非常简单地搜索“\ nVu \ n”,这样看起来会有点像:
var exist = text.Contains("\nVu\n");
除了第一行和最后一行的特殊情况之外,这将找到所有情况,并且比将字符串拆分为数组更有效。
正如@quetzalcoatl所说
..第一行和最后一行可以被.StartsWith(“Vu \ n”)和.EndsWith(“\ nVu”)覆盖..