检查单词重新排序后的字符串是否相同-C#
这里有一个字符串:检查单词重新排序后的字符串是否相同-C#,c#,C#,这里有一个字符串:-a-p-O 现在我们有了相同的,但顺序不同:-p-A-O 检测这两个字符串相同的最佳方法是什么?您可以使用split方法拆分两个字符串,使用Array.sort对数组进行排序,然后使用SequenceEqual方法比较两个结果数组。您可以尝试以下代码: var setA = "-A -P -O".Split(' '); var setB = "-P -A -O".Split(' '); var areSetsEqual = setA.Except(setB).Count()
-a-p-O
现在我们有了相同的,但顺序不同:-p-A-O
检测这两个字符串相同的最佳方法是什么?您可以使用
split
方法拆分两个字符串,使用Array.sort
对数组进行排序,然后使用SequenceEqual
方法比较两个结果数组。您可以尝试以下代码:
var setA = "-A -P -O".Split(' ');
var setB = "-P -A -O".Split(' ');
var areSetsEqual = setA.Except(setB).Count() == 0 && setB.Except(setA).Count() == 0;
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;
}
public bool CheckString(字符串s1、字符串s2)
{
var firstArray=s1.Split(“”).ToArray();
var secondArray=s2.Split(“”).ToArray();
Sort(firstArray);
Sort(secondArray);
if(firstArray.Length!=secondArray.Length)返回false;
for(int i=0;i
您缺少[theFirst].Split()。除了([theSecond].Split())
字符串“-A-P-O”永远不能与字符串“-P-A-O”相同。请更精确地定义相同,并且仅当且仅当两个字符串都没有重复项时才进行更正,否则有一个反例:“-A-P-O-A”
与-A-P-O-P“
预期为假
,实际为真
。。。。或Linq:bool result=left.Split(“”).OrderBy(x=>x).SequenceEqual(right.Split(“”).OrderBy(x=>x))代码>