Java问题:If/Else
我已经做了一个计划,告诉什么季节是基于这个月。然而,不管我输入什么,它都说是秋天。代码如下:Java问题:If/Else,java,Java,我已经做了一个计划,告诉什么季节是基于这个月。然而,不管我输入什么,它都说是秋天。代码如下: 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);
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();
}
}
比较字符串时使用equals()
方法
例如:
"december".equals(month) || "January".equals(month)
=
检查引用是否相等(指向同一对象的两个引用不相等)equals()
检查对象的内容。在Java中,对于字符串,应该使用equals
方法进行比较,而不是使用literal=
进行比较。因此,使用==
的month.equals(“一月”)
将比较内存引用,并查看它们是否与对象的引用相同=
用于比较int或double之类的文本使用equals方法而不是==
if (month.equals("december")||month.equals("January")||month.equals("February")){
在java中==比较引用。但是equals方法比较字符串的值。不要将字符串值与==
进行比较;比较对象引用以确定它们是否是相同的对象。使用equals
比较字符串值。我更喜欢这个答案,因为如果month
为空,它可以避免NullPointerException。
if (month.equals("december")||month.equals("January")||month.equals("February")){