C# 检查分割字符串的一个计数,如果正确则打印另一个计数

标签 c#

所以我目前正在开发一个程序,该程序可以将大型 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/

相关文章:

c# - XML 解析错误 - 使用 C# 的 Salesforce 批量 API

c# - IP摄像机(RTSP)和QR码

c# - C# 中的事务和 ExecuteNonQuery 错误

c# - asp.net 按钮上单击“创建 CSV 文件”,下载该文件并刷新页面

C#,NUnit 在循环中断言

c# - 如何识别 List<T> 中对象的哪些属性发生了变化

c# - 触发器不适用于 ToggleButton.IsChecked 属性

c# - UOM(度量单位)设计模式

c# - 剪贴板监听器事件被调用两次

c# - ASP.NET Core 2.0 获取模型列表,然后获取模型列 - 此选项