如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是不是有回车?

Posted

技术标签:

【中文标题】如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是不是有回车?【英文标题】: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')? 【参考方案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;

【讨论】:

以上是关于如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是不是有回车?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过在 AWS CLI 中使用其 ARN 来获取 lambda 函数?

您如何将其转换为迭代函数而不是使用嵌套循环进行递归?

如何在数组中查找一个值并使用 PHP 数组函数将其删除?

如何执行带有承诺的函数并通过 API 调用多次检查其值并使用该值执行另一个函数?

如何估计密度函数并计算其峰值?

如何估计密度函数并计算其峰值?