为什么我的代码中的这个 if 语句被忽略了?
Why is this if statement in my code ignored?
此代码应该反转字符串,然后使用 if 语句检查原始字符串输入是否等于反转输入。但是 if 语句永远不会运行,表明原始字符串和反转字符串不相同......即使我输入回文。
import java.util.Scanner;
public class TestScannerPalindrome {
static String reverse(String par) {
String reversed = new String();
for(int i = par.length() - 1; i >= 0; i--) {
reversed += par.charAt(i);
}
return reversed;
}
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String unos = sc.nextLine();
if(unos == reverse(unos)) {
System.out.println(unos + " is palindrome");
} else {
System.out.println(unos + " is not palindrome");
}
}
}
字符串是 Java 中的对象,因此您不能使用“==”运算符比较它们。您必须使用 String class.
的 equals() 方法
此代码应该反转字符串,然后使用 if 语句检查原始字符串输入是否等于反转输入。但是 if 语句永远不会运行,表明原始字符串和反转字符串不相同......即使我输入回文。
import java.util.Scanner;
public class TestScannerPalindrome {
static String reverse(String par) {
String reversed = new String();
for(int i = par.length() - 1; i >= 0; i--) {
reversed += par.charAt(i);
}
return reversed;
}
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String unos = sc.nextLine();
if(unos == reverse(unos)) {
System.out.println(unos + " is palindrome");
} else {
System.out.println(unos + " is not palindrome");
}
}
}
字符串是 Java 中的对象,因此您不能使用“==”运算符比较它们。您必须使用 String class.
的 equals() 方法