我正在编写一个算法来检查两个单词是否是字谜,但即使它应该这样做也不会返回true。有人可以给我建议吗?
public class Anagramme {
public boolean Anagramme(boolean resultat) {
String s1 = "parisien", s2 = "aspirine";
if (s1.length() != s2.length()) {
return false;
} else {
char[] ch1 = s1.toCharArray();
Arrays.sort(ch1);
String r1 = new String(ch1);
char[] ch2 = s2.toCharArray();
Arrays.sort(ch2);
String r2 = new String(ch2);
if (r1.equals(r2)) {
return true;
} else {
return false;
}
}
}
}
答案 0 :(得分:1)
我已经重写了你的代码并删除了不必要的部分,这对我有用。
public boolean anagram() { // changed here
String s1 = "parisien", s2 = "aspirine";
if (s1.length() != s2.length()) {
return false;
} else {
char[] ch1 = s1.toCharArray();
Arrays.sort(ch1);
String r1 = new String(ch1);
char[] ch2 = s2.toCharArray();
Arrays.sort(ch2);
String r2 = new String(ch2);
return r1.equals(r2); // changed here
}
}
用法:
boolean anagram = anagram();
System.out.println("anagram = " + anagram);
结果:
anagram= true
你可以尝试它可以帮助你!
答案 1 :(得分:-1)
以这种方式使用.equals询问引用是否相同。它不会比较每个数组的内容。如果要比较每个数组的内容,可以循环并比较每个字符或使用Arrays.equals。