gpt4 book ai didi

java - 未能初始化 GregorianCalendar 对象

转载 作者:行者123 更新时间:2023-12-02 07:35:35 25 4
gpt4 key购买 nike

我是一个 Java 初学者,我一直在制作简单的测试程序来复习我读过的一些 Material 。以下代码块工作不正确。它应该接受用户的年、月和日期,然后创建一个用年、月和日期初始化的 GregorianCalendar 对象。但是,当我尝试返回 GregorianCalendar 变量的月份时,它总是返回我初始化月份变量的月份。我不知道为什么。

import java.util.*;
public class Prac {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter Year: ");
int YEAR = input.nextInt();
System.out.print("Enter Month: ");
String MONTH_STRING = input.next();
System.out.print("Enter Date: ");
int DATE = input.nextInt();
int MONTH = 10;
String mon = MONTH_STRING.toLowerCase();

if (mon == "january") {
MONTH = 0;
} else if (mon == "february") {
MONTH = 1;
} else if (mon == "march") {
MONTH = 2;
} else if (mon == "april") {
MONTH =3;
} else if (mon == "may"){
MONTH =4;
} else if (mon == "june"){
MONTH =5;
} else if (mon == "july"){
MONTH =6;
} else if (mon == "august"){
MONTH=7;
} else if (mon == "september"){
MONTH=8;
} else if (mon == "october"){
MONTH=9;
} else if (mon == "november"){
MONTH=10;
} else if (mon == "december"){
MONTH =11;
}

GregorianCalendar entDate = new GregorianCalendar(YEAR,MONTH,DATE);
System.out.println(entDate.get(Calendar.MONTH));
}
}

另外,我知道我可以使用开关 block ,但它以某种方式给我带来了奇怪的错误。

最佳答案

字符串.equals

您比较字符串的方式不正确。

== 运算符检查对象是否相同——这意味着相同的内存位置和所有内容。

你想做的是String::equals方法。

if(mon.equals("january") {
...
} else if(mon.equals("feburary") {
...
} ...

这只会检查字符串的值是否相等。

此外,除非您使用 java 1.7+,否则您将无法对字符串使用 switch case。虽然不是问题的一部分,但还是很高兴知道。

关于java - 未能初始化 GregorianCalendar 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com