【发布时间】:2016-06-10 22:52:39
【问题描述】:
我从一个API得到一个字符串值,里面有很多没用的空行:
bla bla bla
bla
bla bla bla
我想删除那些空行以获得这个结果:
bla bla bla
bla
bla bla bla
我该如何继续?
【问题讨论】:
我从一个API得到一个字符串值,里面有很多没用的空行:
bla bla bla
bla
bla bla bla
我想删除那些空行以获得这个结果:
bla bla bla
bla
bla bla bla
我该如何继续?
【问题讨论】:
假设您有一个用新行('\n') 分隔的字符串,您可以Split该字符串并删除空行。
var lines = inputString.Split('\n')
.Where(x=> !string.IsNullOrEmpty(x))
.ToArray();
inputString = string.Join(@"\n",lines);
【讨论】:
使用正则表达式,您可以使用 Regex.Replace(string.@"^\s?\n", @"") 删除所有空白行(或仅包含空格的行)。
否则,您可以使用 StringReader 来迭代行,并且只对非空行或空白行执行某些操作:
public static string ReturnNoBlankLinks(string emptyLineString)
{
using (StringReader sR = new StringReader(emptyLineString))
{
string curLine = String.Empty;
while ((curLine = sR.ReadLine()) != null)
{
if (!String.IsNullOrWhiteSpace(curLine))
{
doSomething();
}
}
}
}
【讨论】:
另一种解决方案:
string apiString = "bla bla bla\n\n\nbla\r\n\r\nbla bla bla";
char[] lineFeedChars = {'\n', '\r'};
string[] cleanStringArray = apiString.Split(lineFeedChars, StringSplitOptions.RemoveEmptyEntries);
string cleanString = String.Join(Environment.NewLine, cleanStringArray);
【讨论】: