【问题标题】:How do I find whether a string has a carriage return by using the String.Contain function using its ascii character?如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是否有回车?
【发布时间】:2011-12-27 08:49:24
【问题描述】:

在C#中,如何使用String.Contains函数判断一个字符串是否有回车? 回车的 ascii 是 13。

Chr(13) 是在 Visual Basic 中表示回车的方式。在 C# 中如何使用其 ascii 字符而不是 "\r" 表示回车?

if (word.Contains(Chr(13))  
{  
    .  
    .  
    .  
}  

【问题讨论】:

  • "\r" 有什么问题(或者,如果你想要 char'\r')?

标签: c# string ascii contains


【解决方案1】:
if (word.Contains(Environment.NewLine)) { }

【讨论】:

  • 不,在 Windows 上是“\r\n”。
  • 不,那不一样。 Environment.NewLine 通常(但不一定)是 CRLF 对,即 char(13)+char(10)。
  • 这将在 Windows 中检查操作系统特定的 NewLine,它是 CRLF,在我的 Mac 上是 LF
  • TBH 我这样回答是因为我的印象是 OP应该听到的比他想要听到的答案更多。无论哪种方式,他现在都有两个答案:)
【解决方案2】:

您可以使用单引号输入char

var s = "hello\r";

if (s.Contains('\r')) 
{

}

如果更容易阅读,可以将13 转换为字符

var s = "hello\r";

if (s.Contains((char)13)) 
{

}

【讨论】:

  • 更容易阅读: const char CR = '\r'; if(s.Contains(CR)) { ... }
  • @Olivier - 是的,这看起来更容易:)
【解决方案3】:

这在所有 .NET 版本中都有效:

if (word.Contains("\r"))
{
  ...
}

这仅在 .NET 3.5 中有效:

if (word.Contains('\r'))
{
  ...
}

【讨论】:

    【解决方案4】:

    既然您声明不想使用\r,那么您可以将整数转换为char

    if (word.Contains((char)13)) { ... }
    

    【讨论】:

      【解决方案5】:

      Convert.Char(byte asciiValue) 从任意整数创建一个字符;所以

      if (word.Contains(Convert.Char(13)) 
      

      应该做的工作。

      【讨论】:

        【解决方案6】:
        s.Contains('\x0D');
        

        字符用单引号表示;

        使用 \r 有什么问题?

        【讨论】:

          【解决方案7】:

          我相信你可以用正则表达式来做到这一点,但如果你像我一样笨,这个扩展方法是个好方法:

          public static bool HasLineBreaks(this string expression)
          {
              return expression.Split(new[] { "\r\n", "\r", "\n" },StringSplitOptions.None).Length > 1;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-27
            相关资源
            最近更新 更多