Gibt es eine bessere Möglichkeit, dieses Verfahren zu kompaktieren, d.
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);
Versuchen:
import Java.text.DateFormatSymbols;
monthString = new DateFormatSymbols().getMonths()[month-1];
Alternativ können Sie SimpleDateFormat verwenden:
import Java.text.SimpleDateFormat;
System.out.println(new SimpleDateFormat("MMMM").format(date));
(Sie müssen ein Datum mit Ihrem Monat in einem Date
-Objekt angeben, um die zweite Option verwenden zu können.).
Month
enumSie könnten die Month
enum verwenden. Diese Enumeration wird als Teil des neuen Java.time - Frameworks definiert, das in Java 8 und höher integriert ist.
int monthNumber = 10;
Month.of(monthNumber).name();
Die Ausgabe wäre:
OKTOBER
Lokalisieren Sie eine Sprache außerhalb des Englischen, indem Sie getDisplayName
auf derselben Enum aufrufen.
String output = Month.OCTOBER.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH );
ausgabe:
oktobre
Nehmen Sie ein Array mit dem Namen der Monate.
String[] str = {"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"};
Dann wo Sie Monat nehmen möchten, wie folgt:
if(i<str.length)
monthString = str[i-1];
else
monthString = "Invalid month";
Sie könnten über ein Array von Strings verfügen und über den Index zugreifen.
String months[] = {"January", "February", "March", "April",
"May", "June", "July", "August", "September",
"October", "November", "December"};
Dies wurde bereits erwähnt, aber es gibt eine Möglichkeit, den Code in einer Methode zu platzieren:
public static String getMonthName(int monthIndex) {
return new DateFormatSymbols().getMonths()[monthIndex].toString();
}
oder wenn Sie einen besseren Fehler als eine ArrayIndexOutOfBoundsException erstellen wollten:
public static String getMonthName(int monthIndex) {
//since this is zero based, 11 = December
if (monthIndex < 0 || monthIndex > 11 ) {
throw new IllegalArgumentException(monthIndex + " is not a valid month index.");
}
return new DateFormatSymbols().getMonths()[monthIndex].toString();
}
import Java.time.Month;
Month exemple = new Month.of(12);
//---return a Month object with value of December---
String month = exemple.toString();
//---if you want to convert Month to String---