【问题标题】:How should I remove all the empty lines from a string in C#?我应该如何从 C# 中的字符串中删除所有空行?
【发布时间】:2016-06-10 22:52:39
【问题描述】:

我从一个API得到一个字符串值,里面有很多没用的空行:

bla bla bla


bla

bla bla bla

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

bla bla bla
bla
bla bla bla

我该如何继续?

【问题讨论】:

标签: c# .net string


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    使用正则表达式,您可以使用 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();
                        }
                    }
                }
            }
    

    【讨论】:

      【解决方案3】:

      另一种解决方案:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-18
        • 2018-03-04
        • 2011-08-24
        • 2023-04-08
        • 2014-04-01
        • 2019-11-25
        • 1970-01-01
        相关资源
        最近更新 更多