not - Cambio de caso de ignorar en java 7
private jlabel (3)
Estoy haciendo un POC en Java 7 nuevas características. Tengo código para usar String en la instrucción switch y funciona. Quiero hacer que funcione en caso de insensibilidad también. ¿Hay una manera de revisar con ignoreCase en String?
package com.java.j7;
public class Test {
final private String _NEW ="NEW";
final private String _PENDING = "PENDING";
final private String _CLOSED = "CLOSED";
final private String _REJECTED ="REJECTED";
public static void main(String... strings){
Test j = new Test();
j.processItem("new");
j.processItem("pending");
j.processItem("closed");
j.processItem("rejected");
}
void processItem(String s){
switch (s) {
case _NEW:
System.out.println("Matched to new");
break;
case _PENDING:
System.out.println("Matched to pending");
break;
case _CLOSED:
System.out.println("Matched to closed");
break;
case _REJECTED:
System.out.println("Matched to rejected");
break;
default:
System.out.println("Not matching any more");
break;
}
}
}
Desde oracle docs cambiar con cadena
La cadena en la expresión de cambio se compara con las expresiones asociadas con cada etiqueta de caso como si se estuviera utilizando el método de String#equals .
Puedes usar
switch(s.toUpperCase()){
...
.....
}
Ver también
no, pero puede activar s.toUpperCase()
. asi que:
switch (s.toUpperCase()) {
//same as before
}
y mientras estamos haciendo las paces, es mejor que se utilicen mayúsculas en la configuración regional en inglés para evitar problemas con el turco
usando cadenas en el ejemplo de switch de oracle docs usando cadenas en las instrucciones del interruptor
public class StringSwitchDemo {
public static int getMonthNumber(String month) {
int monthNumber = 0;
if (month == null) {
return monthNumber;
}
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}
return monthNumber;
}
public static void main(String[] args) {
String month = "August";
int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) {
System.out.println("Invalid month");
} else {
System.out.println(returnedMonthNumber);
}
}
}