C#包含用于空白的方法
本文关键字:方法 空白 用于 包含 | 更新日期: 2023-09-27 18:20:53
我在使用contains方法检查列表中的特定值时遇到了问题,它似乎无法正常工作,是否有其他方法可以检查带有空格的字符串值。
例如:
string test = "Hello Stack Person";
if(test.ToLower().Contains("hello stack person"))
{
//code to execute
}
如果我的if语句不成立,我是不是做错了什么?
thanx!
首先,您应该检查您认为是空白的字符是否真的是空白。如果它们是不间断的空间,那么像你发布的这样简单的比较是行不通的。虽然我相信Unicode有更多的可能性,但在大多数情况下,这应该会奏效。
if (test.ToLower().Replace(''u00A0', ' ').Contains("hello stack person"))
{
// code
}
现在我不知道为什么你必须以这种方式处理非中断空格,因为它们几乎只用于正确渲染文本。尽管如此,我已经遇到过一次这样的问题,我花了一些时间才意识到问题出在哪里,因为我比较的两个字符串看起来与我相同。
使用trim()删除空格
如果使用列表,请使用Select
var selection = list.Select(x => x.ToString()
.Trim().ToLower() == "hello stack person");
要获得正确或错误,请使用Any
var result = list.Any(x => x.ToString()
.Trim().ToLower() == "hello stack person");
我看不出你怎么称呼list
。如果您指的是字符串的字符数组,请使用String.IndexOf
:
string test = "Hello Stack Person";
bool contains = test.IndexOf("hello stack person", StringComparison.OrdinalIgnoreCase) >= 0;
不要使用ToLower
进行区分大小写比较,而是使用StringComparison
。
请参阅:您的代码通过土耳其测试吗?