重新排列单词后检查字符串是否相同-C#

时间:2019-01-14 13:11:44

标签: c#

这是一个字符串:-A -P -O

现在我们有相同的东西,但是顺序是另外一个:-P -A -O

检测这两个字符串相同的最佳方法是什么?

3 个答案:

答案 0 :(得分:6)

var setA = "-A -P -O".Split(' ');
var setB = "-P -A -O".Split(' ');
var areSetsEqual = setA.Except(setB).Count() == 0 && setB.Except(setA).Count() == 0;

答案 1 :(得分:3)

您可以使用Split方法拆分两个字符串,使用Array.Sort对数组进行排序,然后使用SequenceEqual方法比较两个结果数组。

答案 2 :(得分:2)

您可以尝试以下代码:

public bool CheckString(string s1, string s2)
{
  var firstArray = s1.Split(' ').ToArray();
  var secondArray = s2.Split(' ').ToArray();
  Array.Sort(firstArray);
  Array.Sort(secondArray);
  if (firstArray.Length != secondArray.Length) return false;
  for (int i = 0; i < firstArray.Length; i++)
    if (firstArray[i] != secondArray[i]) return false;
  return true;
}