在java 7中切换忽略大小写

我正在做Java 7新function的POC。 我有代码在switch语句中使用String,它的工作原理。 我想让它在不区分大小写的情况下工作。 有没有办法在String上检查ignoreCase?

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

不,但你可以打开s.toUpperCase() 。 所以:

 switch (s.toUpperCase()) { //same as before } 

虽然我们在挑剔,但你最好在英语语言环境中使用大写字母来避免土耳其问题

在交换机中使用String oracle docs中的示例在交换机语句中使用字符串

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

从oracle docs 切换到字符串

将switch表达式中的String与每个case标签关联的表达式进行比较,就好像正在使用String#equals方法一样。

您可以使用

 switch(s.toUpperCase()){ ... ..... } 

也可以看看

  • 串#toUpperCase