unrecognized not marked ignorable ejemplo java switch-statement java-7

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