您好,我是使用 Java 的新手,我只需要一些建议。
这就是我需要做的:用户输入日期 8/15/2018,控制台应该有输出:“你好!这是我们 2018 年 8 月的第 15 天。”
这是我的代码
package newdate;
import java.util.Scanner;
public class NewDate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the date in mm/dd/yyyy: ");
String str=sc.next();
switch (str) {
case 1: str.substring(0,2) = "January";
break;
case 2: str.substring(0,2) = "February";
break;
case 3: str.substring(0,2) = "March";
break;
case 4: str.substring(0,2) = "April";
break;
case 5: str.substring(0,2) = "May";
break;
case 6: str.substring(0,2) = "June";
break;
case 7: str.substring(0,2) = "July";
break;
case 8: str.substring(0,2) = "August";
break;
case 9: str.substring(0,2) = "September";
break;
case 10: str.substring(0,2) = "October";
break;
case 11: str.substring(0,2) = "November";
break;
case 12: str.substring(0,2) = "December";
break;
default: str.substring(0,2) = "Invalid month";
break;
}
System.out.println("Hello! This is day " + str.substring(3,5) +" of the month of " + str.substring(0,2) +" in the year of our Lord" + str.substring(6,10));
}
}
问题是数据类型,我想要一个数字的月份将被替换为字符串(月份)示例:11 = 十一月
我该怎么做?
首先,对于现实世界的编程,可以使用LocalDate
标准库中的来保存日期和DateTimeFormatter
解析用户在LocalDate
. 请参阅底部的链接。
最根本的是,对于您的代码,您需要一个单独的String
变量来表示月份的名称。您不能将此分配回您已有的字符串。只需String monthName;
在您的switch
开始中声明并为其分配适当的值。
此外,当str
是字符串而 1 是 时int
,您不能打开str
并使用 1 作为案例标签。的直接的解决办法是在切换str.substring(0,2)
(月份数作为字符串)和使用"01"
,"02"
等,如情况下的标签。另一个常见的解决方案是将月份数字解析为一个int
(请参阅下面的其他链接或搜索如何执行此操作),然后按原样保留案例标签 1、2 等。
链接
java.time
.本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句