【发布时间】:2020-05-21 14:58:16
【问题描述】:
为什么代码向我显示缺少返回语句的错误?
我要做的是检查字符串的长度,然后检查其内容并比较它们。
import java.util.Scanner;
public class Solution {
static boolean isAnagram(String a, String b) {
char[] arr1 = a.toLowerCase().toCharArray();
char[] arr2 = b.toLowerCase().toCharArray();
java.util.Arrays.sort(arr1);
java.util.Arrays.sort(arr2);
if (arr1.length != arr2.length) {
if (!arr1.equals(arr2)) {
System.out.println("Not Anagrams");
}
return false;
} else if (arr1.equals(arr2)) {
System.out.println("Anagrams");
return true;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String a = scan.next();
String b = scan.next();
scan.close();
boolean ret = isAnagram(a, b);
System.out.println((ret) ? "Anagrams" : "Not Anagrams");
}
}
【问题讨论】:
-
所有代码分支都需要返回一个值。如果 arr1 和 arr2 的长度不同且不相等,则不返回任何内容。
-
因为如果
arr1.length == arr2.length你什么都不返回。 -
就像他们说的那样,如果 arr1.length == arr2.length 并且它们不相等,您将不会返回任何东西。最好在每个方法的末尾设置一个默认的“return”,这样如果出现问题,你只需
return false。 -
@Nils 即使我做了同样的事情,它也没有执行。显示同样的错误
-
@SteffenJacobs 做到了。继续显示相同的错误。
标签: java algorithm return anagram