Java从整数获取月份字符串


问题内容

有没有更好的方法来压缩此方法,即通过避免切换情况来降低圈复杂度?

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

问题答案:

尝试:

import java.text.DateFormatSymbols;
monthString = new DateFormatSymbols().getMonths()[month-1];

另外,您可以使用SimpleDateFormat:

import java.text.SimpleDateFormat;
System.out.println(new SimpleDateFormat("MMMM").format(date));

Date要使用第二个选项,您必须在对象中添加日期和月份)。