所以我目前正在开发一个程序,该程序可以将大型 txt
文件作为字符串逐行读取。对于文件的特定部分,格式如下:
文本1:文本2:文本3:文本4:文本5:文本6
我知道如何拆分字符串并找到不同的计数。
我想要做的是检查text5中的文本是否以某个表达式SORT开头,然后为该行打印text3。
foreach (string str in File.ReadLines(@"/filelocation"))
{
if (str.StartsWith("fusedef"))
{
string text3 = str.Split(':')[2];
string text5 = str.Split(':')[4];
if (text5.StartsWith("SORT_"))
{
Console.WriteLine(text3);
}
}
(据我所知,分割字符串的计数是从 0 开始的,如果我错了,请纠正我,几周前才开始使用 c#。谢谢!)
最佳答案
您需要删除任何可能会混淆 StartsWith 的字符。特别是字符串开始之前的空格。
string.Split 有一个重载,它允许您设置多个要分割的字符,然后删除此分割最终返回的空字符串
string[] blocks = str.Split(new char[] {':', ' '}, StringSplitOptions.RemoveEmptyEntries);
if (blocks[4].StartsWith("SORT_"))
{
Console.WriteLine(blocks[2]);
}
或者,您可以修剪 block 字符串
string[] blocks = str.Split(':');
if (blocks[4].Trim().StartsWith("SORT_"))
{
Console.WriteLine(blocks[2]);
}
关于C# 检查分割字符串的一个计数,如果正确则打印另一个计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419357/