我制作了一个程序,根据月份来判断它是什么季节。然而,无论我输入什么,它都说是秋天。这是代码:
import java.util.Scanner;
public class SeasonChecker {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("What month is it??");
String month = input.nextLine();
System.out.println(month);
if (month == "december"||month == "January"||month=="February"){
System.out.println("Then it is Winter?");
}
else if (month=="March"||month=="May"||month=="April"){
System.out.println("Then it is Spring!!!");
}
else if (month=="June"||month=="July"||month=="August"){
System.out.println("Then it is Summer!");
}
else {
System.out.println("Then it is Autumn!");
}
input.close();
}
}
答案 0 :(得分:5)
month == "december"||month == "January"
在比较equals()
时使用Strings
方法。
示例:
"december".equals(month) || "January".equals(month)
==
检查引用相等性(指向同一对象的引用都不是)。 equals()
检查对象的内容。
答案 1 :(得分:3)
在Java中,对于字符串,您应该使用equals
方法进行比较,而不是文字==
比较。所以month.equals("January")
使用==
将比较内存引用,看它们是否是对象的相同引用。 ==
用于比较文字,如int或double
答案 2 :(得分:2)
使用equals方法而不是==
if (month.equals("december")||month.equals("January")||month.equals("February")){
<=>在java ==中比较引用。但是equals方法比较String的值。