如果字符串中包含单词,则显示该文本,如果在c#中显示该字符串,则显示该字符串

时间:2013-11-03 10:07:42

标签: c# string

我希望有类似“if”语句来测试一个单词或一组单词的字符串。如果单词在字符串中,它会在控制台上显示字符串。

如果有人能提供帮助,我将不胜感激。

4 个答案:

答案 0 :(得分:3)

虽然这是一个非常有问题的问题;我会违背自己的直觉并回答它。

构建您要搜索的List<string>

private List<string> _words = new List<string> { "abc", "def", "ghi" };

然后构建一个很好的小扩展方法,如下所示:

public static bool ContainsWords(this string s)
{
    return _words.Any(w => s.Contains(w));
}

所以现在你可以说:

myString.ContainsWords();

整个扩展类可能如下所示:

public static class Extensions
{
    private List<string> _words = new List<string> { "abc", "def", "ghi" };

    public static bool ContainsWords(this string s)
    {
        return _words.Any(w => s.Contains(w));
    }

    public static bool ContainsWords(this string s, List<string> words)
    {
        return words.Any(w => s.Contains(w));
    }
}

注意:根据应用程序的需要,第二种方法更通用。它不会从扩展类中获取列表,而是允许它被注入。但是,可能是您的应用程序非常具体,第一种方法更合适。

答案 1 :(得分:0)

String [] words={"word1","word2","word3"};
String key="word2";
for(int i=0;i<words.Length;i++)
{
if(words[i].Contains(key))
Console.WriteLine(words[i]);
}

答案 2 :(得分:0)

为什么不使用.Contains()方法....

string s = "i am a string!";
bool matched = s.Contains("am");

答案 3 :(得分:0)

您可以使用String.Contains方法;

string s = "helloHellohi";
string[] array = new string[] { "hello", "Hello", "hi", "Hi", "hey", "Hey", "Hay", "hey" };

foreach (var item in array)
{
   if(s.Contains(item))
     Console.WriteLine(item);
}

输出将是;

hello
Hello
hi

这里有 demonstration