gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:55:03 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com