【发布时间】:2019-01-01 01:52:23
【问题描述】:
我做了一个简单的函数,它通过排序和比较排序后的值来检查两个单词是否是字谜,但是即使单词不是字谜,这个程序也总是返回 true。如果我删除 .ToString() 它评估为假。知道为什么要这样做以及有关如何解决此问题的任何想法吗?
public bool anagram(string word1, string word2)
{
char[] word1Arr = word1.ToArray();
char[] word2Arr = word2.ToArray();
Array.Sort(word1Arr);
Array.Sort(word2Arr);
Console.WriteLine(word1Arr);
Console.WriteLine(word2Arr);
if (word1Arr.ToString() == word2Arr.ToString())
{
return true;
}
else
{
return false;
}
}
【问题讨论】:
-
你检查过
word1Arr.ToString()的输出是什么吗? -
如果您能提供Minimal, Complete, and Verifiable example,那就太好了。特别是您的数据样本会有所帮助。
-
@AyJay 调试和进入代码更容易
-
@AyJay 没有更深层次的潜在问题。您没有检查正在比较的内容,否则您会看到它是
"System.Char[]" -
@AyJay 如果您确实对其进行了调试,您会注意到
word1Arr.ToString()不会返回您认为返回的内容。