如何确定一个字符串是否包含另一个字符串中的单词

时间:2017-03-06 17:22:15

标签: c#

我想检查一个字符串是否包含C#中任意顺序的单词。我怎么能用一个简单的if语句来做到这一点。请参阅以下示例:

string a = "PT. DOWELL ANADRILL SCHLUMBERGER";
string b = "ANADRILL DOWELL";

if( a.Contains( b ) ) {
    MessageBox.Show("true");
} else { 
    // the if always evaluates to false
    MessageBox.Show("false"); 
}

3 个答案:

答案 0 :(得分:7)

如果您想知道a是否包含b中的任何字词,那么

if(b.Split().Any(x => a.Contains(x)))

或者,如果您希望a包含b

中的所有字词
if(b.Split().All(x => a.Contains(x)))

请注意,请勿确保b中的字词不是a中的字词

a = "Once before";
b = "be";

此外,这只会将b中的单词拆分为空格,因此如果有想要忽略的标点符号则无法使用

a = "I like turtles";
b = "like.";

答案 1 :(得分:3)

如果你知道每个单词之间都有一个空格来检查,这是另一种方式。

if(b.Split(' ').Any(a.Contains))

答案 2 :(得分:0)

            string[] words = names.Split(';', '=', '\n', ' ', '\t');

            String utga = textBox6.Text;
            String utga1 = "IMSI";
            int loop = 0;

            int i = 0;
            int j = 0;

            foreach (string word in words)
            {
                int j = i+1;

                if (words[i] == utga)
                {
                    string loop = words[i+1];
                    if(words[j] == utga1)
                    {

                    MySqlDataAdapter adp1 = new MySqlDataAdapter("Insert into hlr.hlr(IMSI,MSISDN_COLUMN) Values('" + loop + "','" + words[i + 1] + "')", connection);
                    DataTable hlr = new DataTable();
                    adp1.Fill(hlr);
                    dataGridView1.DataSource = hlr;
                    adp1.Dispose();
                    connection.Close();

                    //i = i + too;

                    i++;

                }

                else
                {
                    i++;

                }
            }    

}