对于这个受让人,我认为我做对了,但是当我在网上提交时,即使我用Eclipse检查过,也没有将其列为正确。
提示:
编写一个方法isPalindrome接受一个字符串数组作为其参数,如果该数组是回文(如果它向前读取向后),则返回true,否则返回/ false。例如,数组{“alpha”,“beta”,“gamma”,“delta”,“gamma”,“beta”,“alpha”}是回文,因此将该数组传递给您的方法将返回true。具有零个或一个元素的数组被认为是回文。
我的代码:
public static void main(String[] args) {
String[] input = new String[6]; //{"aay", "bee", "cee", "cee", "bee", "aay"} Should return true
input[0] = "aay";
input[1] = "bee";
input[2] = "cee";
input[3] = "cee";
input[4] = "bee";
input[5] = "aay";
System.out.println(isPalindrome(input));
}
public static boolean isPalindrome(String[] input) {
for (int i=0; i<input.length; i++) { // Checks each element
if (input[i] != input[input.length-1-i]){
return false; // If a single instance of non-symmetry
}
}
return true; // If symmetrical, only one element, or zero elements
}
作为一个例子,{“aay”,“bee”,“cee”,“cee”,“bee”,“aay”}在Eclipse中返回true,但是练习它!说它返回false。发生了什么事?
答案 0 :(得分:0)
这不是你如何比较Java中的字符串。使用以下内容:
if (!input[i].equals(input[input.length-1-i])){
return false; // If a single instance of non-symmetry
}
阅读this。
答案 1 :(得分:0)
你不能使用operator ==或!=来比较字符串对象。运算符将处理对象引用而不是值。
public static boolean isPalindrome(String[] input) {
for (int i=0; i<input.length; i++) { // Checks each element
if (!input[i].equals( input[input.length-1-i])){
return false; // If a single instance of non-symmetry
}
}
return true; // If symmetrical, only one element, or zero elements
}