我应该如何从C#中的字符串中删除所有空行?

时间:2016-06-10 14:33:55

标签: c# .net string

我从API中获取了一个字符串值,并且有很多无用的空行:

bla bla bla


bla

bla bla bla

我想删除这些空行以获得此结果:

bla bla bla
bla
bla bla bla

我该怎么办?

3 个答案:

答案 0 :(得分:1)

假设你有一个用新行('\n')分隔的字符串,你可以Split字符串并删除空行。

var lines = inputString.Split('\n')
           .Where(x=> !string.IsNullOrEmpty(x))
           .ToArray();

inputString = string.Join(@"\n",lines);

答案 1 :(得分:0)

使用正则表达式,您可以使用Regex.Replace(字符串。@" ^ \ 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();
                    }
                }
            }
        }

答案 2 :(得分:0)

又一个解决方案:

    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);