0 c# string replace infinite-loop
我正在研究一些非常低效的C#代码,它们想要删除空白行.它这样做:
string b; ... while ( b.IndexOf("\n\n") >= 0 ) b = b.Replace ("\n\n", "\n");
单个替换不能处理(例如)输入中的\n \n \n,因此需要循环.我认为它应该起作用,而且通常会起作用.
但有时它设法进入无限循环,我不明白如何.在每次迭代时,\n的数量应该减少,因此它应该最终终止.
有任何想法吗?
这会工作:
String c = Regex.Replace(b, "\n\n+", "\n");
Run Code Online (Sandbox Code Playgroud)
我对你无法解释的无限循环没有解释(你是否认为它是无限的?你检查过它是否会改变?),但你可以用正则表达式更容易,更快地完成这个任务:
b = System.Text.RegularExpressions.Regex.Replace(b, "\n+", "\n")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
917 次 |
最近记录: |