如何检查一个字符串是否包含数组中的一个字符串?

28 浏览
0 Comments

如何检查一个字符串是否包含数组中的一个字符串?

下面是我的例子

string test = "Hello World, I am testing this string.";
string[] myWords = {"testing", "string"};

我该如何检查字符串test是否包含以下任何一个单词?如果包含,我该如何使其用与该单词长度相等的星号替换?

0
0 Comments

问题的出现原因:用户想要知道如何检查一个字符串是否包含在一个字符串数组中的字符串。

解决方法:使用正则表达式进行检查。可以使用以下代码实现:

public string AstrixSomeWords(string test)
{
    Regex regex = new Regex(@"\b\w+\b");
    return regex.Replace(test, AsterixWord);
}
private string AsterixWord(Match match)
{
    string word = match.Groups[0].Value;
    if (myWords.Contains(word))
        return new String('*', word.Length);   
    else
        return word;
}

如果`myWords`中的单词数量很大,可以考虑使用`HashSet`以提高性能。

对于检查单词边界的+1,其他解决方案也会匹配到`"test"`,这可能不是预期的结果。

0
0 Comments

问题的出现原因:

在编程中,有时需要检查一个字符串是否包含一个数组中的任意一个字符串。这可能是因为我们想在字符串中查找特定的关键字,或者我们想判断一个字符串是否与我们预先定义的一些特定字符串匹配。

解决方法:

我们可以使用LINQ(Language Integrated Query)来解决这个问题。LINQ是一种用于查询数据的语言集成查询技术,它提供了一种简洁而强大的方式来操作集合数据。在这种情况下,我们可以使用LINQ中的Any()方法来检查一个字符串是否包含一个数组中的任意一个字符串。

下面是解决这个问题的代码示例:

var containsAny = myWords.Any(x => test.Contains(x));

在这个示例中,myWords是一个包含一组要检查的字符串的数组,test是要被检查的字符串。代码中的Any()方法将对myWords数组中的每个字符串进行迭代,并使用Contains()方法来检查test字符串是否包含当前迭代的字符串。如果test字符串包含myWords数组中的任意一个字符串,则containsAny变量将返回true,否则返回false。

通过使用这个简短的代码,我们可以方便地检查一个字符串是否包含一个数组中的任意一个字符串。这种方法使我们的代码更加简洁和可读,同时提供了高效的性能。

0
0 Comments

问题的出现原因:希望通过检查一个字符串是否包含字符串数组中的任意一个字符串,并将找到的字符串替换为相同长度的星号。

解决方法:使用循环迭代字符串数组中的每个字符串,然后使用字符串的Contains方法检查原始字符串是否包含该字符串。如果包含,则获取该字符串的长度,并使用Replace方法将其替换为相同长度的星号。

以下是解决该问题的代码示例:

bool cont = false;
string test = "Hello World, I am testing this string.";
string[] myWords = { "testing", "string" };
foreach (string a in myWords)
{
    if( test.Contains(a))
    {
        int no = a.Length;
        test = test.Replace(a, new string('*', no));
    }
}

通过上述代码,我们可以检查test字符串是否包含myWords数组中的任意一个字符串,如果包含,则将其替换为相同长度的星号。

0