【问题标题】:compare strings in text file比较文本文件中的字符串
【发布时间】:2014-05-13 07:37:47
【问题描述】:

我有一个文本文件,我需要比较每一行的前 8 个字符,并将这些行作为匹配的一行加入。我使用的逻辑是从第一行开始选择每一行并进行比较到其余的行,然后移动到第二行并在最后一行执行相同的操作。但是当我尝试遍历其他行进行比较时,我得到错误“索引和长度必须引用字符串中的位置”。

请指教,见以下代码。

while ((line1 = fileread.ReadLine()) != null)
{
    counter2++;

    while ((line2 =fileread.ReadLine()) != null) 
    {                        
        if (line1.Substring(0, 8) == line2.Substring(0, 8))
        {
            line1 = line1 + " " + line2;
        }
        counter3++;
    }                    

    filewrite.WriteLine(line1);
    counter1++;
}

【问题讨论】:

  • 提示:当一行少于 8 个字符时会发生什么?
  • 检查字符串的 Length 属性...
  • 提示2:使用缓冲区。不要在读取文件的同一个循环中写入文件,否则可能会遇到一些意想不到的结果。
  • 你为什么不检查这样的条件while ((line2 =fileread.ReadLine()).Lenght>=8)

标签: c#


【解决方案1】:

在使用Substring之前需要检查ste字符串的长度,使用Length属性。

while ((line2 =fileread.ReadLine()) != null) 
{          
    if (line1.Length >=8 && lines2.Length >=8 &&
        line1.Substring(0, 8) == line2.Substring(0, 8))
    {
        line1 = line1 + " " + line2;
    }
    counter3++;
}        

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多