将2个字符串与相同的单词但不同的位置进行比较

时间:2015-01-07 19:56:30

标签: string

 String a = "yes,weak,normal";
 String b = "normal,weak,yes";

我需要比较这些字符串并返回true

1 个答案:

答案 0 :(得分:1)

您可以在","上拆分字符串a。 然后循环遍历该数组中的每个单词,并使用IndexOf将其与字符串b

进行比较

然而,除非你比较长度,否则第一个想法还会包括实际单词的子集。

另一个想法是将它们分别放在逗号字符上的单独数组中,然后对a数组中的每个单词将其与b数组中的元素进行比较。

可能的C#解决方案可能是这样的:

public bool CompareWords(string a, string b)
{
    if (a.Length != b.Length)
        return false;
    var aArray = a.Split(',');
    var bArray = b.Split(',');
    var allExist = true;

    for (var i = 0; i < aArray.Length && allExist; i++)
    {
        allExist = bArray.Any(e => e == aArray[i]);
    }
    return allExist;
}