【发布时间】:2019-04-26 13:19:07
【问题描述】:
我是一个该死的初学者,试图编写一个 lil 程序来检查 2 个单词是否是字谜。到目前为止,单词中的所有空格都被删除了,但显然我的 Arrays.sort() 有错误,但我看不到它。为什么以及在我的 Arrays.sort() 行中出现错误,我该如何解决?
编辑:如果我像这样离开 Arrays.sort() ,它会编译并工作,所以显然该行只有一个问题。如果我把它们留在它指向数组并说错误:找不到符号
public static void isAnagramm(String wordOne, String wordTwo)
{
String w1= wordOne.replaceAll("\\s", "");
int word1 = w1.length();
String w2 = wordTwo.replaceAll("\\s", "");
int word2 = w2.length();
boolean anagrammStatus = false;
if(word1 == word2)
{
anagrammStatus = true;
}
else
{
char [] charArrayWordOne = w1.toLowerCase().toCharArray();
char [] charArrayWordTwo = w2.toLowerCase().toCharArray();
//Arrays.sort(charArrayWordOne);
//Arrays.sort(charArrayWordTwo);
anagrammStatus = charArrayWordOne.equals(charArrayWordTwo);
}
if(anagrammStatus == false)
{
System.out.println("Anagram");
}
else;
{
System.out.println("No Anagram");
}
}
【问题讨论】:
-
if (anagrammStatus = false)应该有双等号吗? -
使用
Arrays.equals()比较数组,否则你只是比较数组的引用而不是内容。 -
您提供的代码将无法编译。这就是 it 不起作用的原因。还有其他原因可以解释为什么类似的程序编译不会产生你想要的结果,但不清楚你实际编写了哪个这样的程序。
-
if(word1 == word2) 也应该是 if(word1.equals(word2))
-
使用 IDE。注意它告诉你的内容。