包含方法,检查字符串上一个char

时间:2015-12-04 14:38:09

标签: c#

这是我的代码:

@Bean public RequestContextListener requestContextListener(){
    return new RequestContextListener();
}

描述只是字符串。 如何检查关键字的先前字符是否为空格,然后执行其他操作。例如,如果描述是:

string keyword = "bil"

if(description.Contains(keyword))
{
    do something...
}

此代码为真:

description = "gobil bla bla"

但是前面的字母是o“gobil”而不是空格。一种解决方案是使用foreach char循环,但描述是一个很长的字符串,会破坏我的应用程序性能。

3 个答案:

答案 0 :(得分:1)

怎么样:

if(description.StartsWith(keyword) || description.Contains(" "+keyword))

答案 1 :(得分:1)

创建一个与单词边界匹配的正则表达式,然后是关键字,后跟另一个单词边界:

if(new Regex(@"\b" + keyword + @"\b").IsMatch(description))
{
  //
}

答案 2 :(得分:0)

循环通过字符串并查找每次出现的关键字。对于每次出现,检查出现是否在字符串的开头或前一个字符是空格:

bool Contains(string description, string keyword)
{
    int index = 0;
    while (true)
    {
        index = description.IndexOf(keyword, index);
        if (index == -1) // Not in string.
        {
            return false;
        }
        if (index == 0) // Start of string.
        {
            return true;
        }
        if (char.IsWhiteSpace(description[index - 1])) // Is previous index whitespace?
        {
            return true;
        }
        index = index + 1;
    }
}