2

我试图复制这些行直到检测到一个空行但是这段代码滞后于我的计算机我不知道我做错了什么这是因为我在另一个while循环中运行while循环?这是我的代码:

ElseIf String.Compare(line, "the") = 1 And Not line.ToLower().Contains("by") Then
            While True

                Dim title = New Regex("^\s*$").Matches(line).Count
                If title = 1 Then Exit While

                builder.AppendLine(line)
                builder.AppendLine(reader.ReadLine())

            End While
4

2 回答 2

3

您没有重置line变量。像这样的东西应该可以工作:

While True
    Dim title = New Regex("^\s*$").Matches(line).Count
    If title = 1 Then Exit While
    builder.AppendLine(line)
    line = reader.ReadLine()
End While

编辑

而不是正则表达式,您可以改为使用String.IsNullOrWhiteSpace()which 可能会使您的代码在将来更易于阅读。

于 2013-02-26T14:20:12.857 回答
2

用那段简短的代码很难准确地说出您要做什么,但是它不起作用的原因很清楚。title如果不等于,您将陷入无限循环1。我认为,您假设 的值line会改变您reader.ReadLineWhile循环内调用的到达时间。你可能打算做这样的事情:

line = reader.ReadLine()
builder.AppendLine(line)
于 2013-02-26T14:21:40.297 回答