如何使用 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 函数?