c# - 如何消除字符串中的所有换行符?

标签 c# .net string newline

我需要去掉字符串中出现的所有换行符(来自数据库)。 我使用下面的代码来完成:

value.Replace("\r\n", "").Replace("\n", "").Replace("\r", "")

我可以看到至少有一个角色像行尾一样幸存下来。字符代码是 8232 .

我很蹩脚,但我必须说这是我第一次有幸看到这个字符。很明显,我可以直接替换这个字符,但我正在考虑将我当前的方法(基于替换“\r”和“\n”的组合)扩展到更可靠的东西,所以它不仅包括 ' 8232' 个字符,还有我尚未找到的所有其他字符。

对于此类问题,您是否有万无一失的方法?

编辑#1:

在我看来,有几种可能的解决方案:

  1. 使用 Regex.Replace
  2. 如果是 IsSeparator 或 IsControl,则删除所有字符
  3. 如果是 IsWhiteSpace 则用 ""替换
  4. 创建一个包含所有可能行尾的列表(“\r\n”、“\r”、“\n”、LF、VT、FF、CR、CR+LF、NEL、LS、PS)并替换他们用空字符串。有很多替换。

我会说最好的结果是在应用第一种和第四种方法之后,但我无法决定哪种方法更快。你认为哪一个是最完整的?

编辑#2

我在下面发布了答案。

最佳答案

以下是解决我的问题的扩展方法。 LineSeparator 和 ParagraphEnding 当然可以在其他地方定义,如静态值等。

public static string RemoveLineEndings(this string value)
{
    if(String.IsNullOrEmpty(value))
    {
        return value;
    }
    string lineSeparator = ((char) 0x2028).ToString();
    string paragraphSeparator = ((char)0x2029).ToString();

    return value.Replace("\r\n", string.Empty)
                .Replace("\n", string.Empty)
                .Replace("\r", string.Empty)
                .Replace(lineSeparator, string.Empty)
                .Replace(paragraphSeparator, string.Empty);
}

关于c# - 如何消除字符串中的所有换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750116/

相关文章:

javascript - Selenium:使用 C# 在 IWebElement 上触发鼠标滚轮

c# - Jay,单声道 C# 编译器和更改语法

c# - LINQ:一起使用 AssociateWith 和 Distinct

c++ - 如何从字符串(c++)填充 FixedString?

java - 为什么初始化字符串后得到 null?

c# - 来自 BlockingDequeue 的 RedisResponseException

JSON的C#自动属性反序列化

c# - 创建docx word文档web api .net core 2.0

.net - Linq 到实体 : does not recognize the method

javascript - 字符串比较在 d3.rgb 中不起作用