webentwicklung-frage-antwort-db.com.de

Java holt Monatstring von Ganzzahl

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);
40
shinynewbike

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.).

98
Flash

Month enum

Sie 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

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

16
Abhishek Shah

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";
8
Harry Joy

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"};
3
cMinor

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();
    }
2
AS4noob
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---
0
Murillo Tavares