múltiples interruptores para el mismo caso

Tengo este codigo:

switch(month){
    case 1:
        System.out.print("January");
            break;
case 2:
    System.out.print("February");
        break;
case 3:
    System.out.print("March");
        break;
case 4:
    System.out.print("April");
        break;
case 5:
    System.out.print("May");
        break;
case 6:
    System.out.print("June");
        break;
case 7:
    System.out.print("July");
        break;
case 8:
    System.out.print("August");
        break;
case 9:
    System.out.print("September");
        break;
case 10:
    System.out.print("October");
        break;
case 11:
    System.out.print("November");
        break;
case 12:
    System.out.print("December");
        break;
}

Bien, entonces este código funciona 100% perfectamente ... para el mes int. Tengo otro int (avgMonth) que solo puede contener los mismos valores (1-12) y quiero tener solo los mismos resultados (los meses). ¿Cómo puedo agregar avgMonth a este código sin tener que copiar todo mi conmutador y mi caso? Intenté usar comas (month, avgMonth) y && 's (month && avgMonth) y también +' s (month + avgMonth) pero fue en vano.

Respuesta 1

Puedes usar DateFormatSymbols, que tienen un getMonths()método.

Obtiene cadenas de mes. Por ejemplo: "enero", "febrero", etc.

public static String getMonth(int month){
    return new DateFormatSymbols(Locale.UK).getMonths()[month-1];       
}
  • Lo hice month-1porque quieres que 1 sea mapeado con enero
  • Puede agregar algunas comprobaciones para los límites de la matriz devueltos por getMonths()
Respuesta: 2

Una simple matriz podría hacer el trabajo, como

String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};

entonces tu mes sería como

monthName = monthNames[month - 1];
avgMonthName = monthNames[avgmonth - 1];
Respuesta: 3

Qué tal si

private static String[] MONTHS = "none,January,February,March,April,May,June,July,August,September,October,November,December".split(",");
public static void printMonth(int month) {
     System.out.print(MONTHS[month]);
}
Respuesta: 4

en este ejemplo que muestra cómo hacerlo: Estudiante [] stud1 = nuevo Estudiante [2]; Estudiante [] stud2 = nuevo Estudiante [2]; Estudiante [] stud3 = nuevo Estudiante [2]; booleano b; stud1 [0] = nuevo estudiante ("Johnny", "Bravo"); stud1 [...

Aquí está mi código: class Question extiende Thread {información de cadena estática; Pregunta pública (información de cadena) {this.info = info; } vacío privado inProtected () {...

Estoy leyendo datos de la base de datos vertica usando múltiples hilos en java. Tengo alrededor de 20 millones de registros y estoy abriendo 5 subprocesos diferentes que tienen consultas seleccionadas como esta ... start = threadnum; ...

Tengo problemas para descubrir cómo encontrar la aparición de los números dentro de una matriz 2D. Soy nuevo en Java, así que tengo que hacer este programa sin usar mapas / soluciones avanzadas. Ejemplo: dado ...