以下是代码:
import java.util.Scanner;
public class Hallo {
public static void main(String[] args) {
System.out.println("What is your name?");
Scanner firstScanner = new Scanner(System.in);
String imput = firstScanner.nextLine();
if (imput.length() > 6 ) {
System.out.println("That's quite a long name!");
}
else {
System.out.println("A nice and consise name you have.");
}
imput = firstScanner.nextLine();
if (imput == "Thank you") {
System.out.println("Yes, so how many siblings do you have?");
}
else {
System.out.print("Aren't you suppose to say 'Thank you' when someone complements you?");
}
}
}
当我在控制台中输入“谢谢你”时,它仍然说“当有人补充你时,你不是想说'谢谢'吗?”即使我按照我声明的方式输入它。为什么不问我有多少兄弟姐妹?
很抱歉,如果这很难理解。
答案 0 :(得分:0)
使用字符串equals()方法检查if语句中的相等性。现在它返回false,因为它只检查内存位置而不是字符串的值。还可以尝试使用equalsignorecase方法使其更加健壮。
答案 1 :(得分:0)
这是因为Java中的==
运算符会比较两个值是否相同。对于诸如int
之类的原语,这可以正常工作。但是对象和String
是对象,它比较两个对象是否相同,而不是它们的内容是否相等。
可能存在两个不同的String对象,它们表示完全相同的文本,但是是两个不同的对象。
所以总是使用
string1.equals(string2)
或
string1.equalsIgnoreCase(string2)
用于字符串比较。