有没有更好的方法来压缩这种方法,即通过避免开关案例来降低圈复杂度?
String monthString;
switch (month) {
case 1: monthString = "January"; break;
case 2: monthString = "February"; break;
case 3: monthString = "March"; break;
case 4: monthString = "April"; break;
case 5: monthString = "May"; break;
case 6: monthString = "June"; break;
case 7: monthString = "July"; break;
case 8: monthString = "August"; break;
case 9: monthString = "September"; break;
case 10: monthString = "October"; break;
case 11: monthString = "November"; break;
case 12: monthString = "December"; break;
default: monthString = "Invalid month"; break;
}
System.out.println(monthString);
Run Code Online (Sandbox Code Playgroud)
Fla*_*ash 104
尝试:
import java.text.DateFormatSymbols;
monthString = new DateFormatSymbols().getMonths()[month-1];
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用SimpleDateFormat:
import java.text.SimpleDateFormat;
System.out.println(new SimpleDateFormat("MMMM").format(date));
Run Code Online (Sandbox Code Playgroud)
(您必须在一个Date
对象中输入您的月份日期才能使用第二个选项).
Abh*_*hah 17
Month
枚举你可以使用Month
枚举.此枚举被定义为Java 8及更高版本中内置的新java.time框架的一部分.
int monthNumber = 10;
Month.of(monthNumber).name();
Run Code Online (Sandbox Code Playgroud)
输出将是:
十月
通过调用getDisplayName
相同的枚举来本地化为超出英语的语言.
String output = Month.OCTOBER.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH );
Run Code Online (Sandbox Code Playgroud)
输出:
OCTOBRE
获取包含月份名称的数组.
String[] str = {"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"};
Run Code Online (Sandbox Code Playgroud)
那么你想在一个月内使用如下:
if(i<str.length)
monthString = str[i-1];
else
monthString = "Invalid month";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
87179 次 |
最近记录: |