java - 在 Java 7 中切换忽略大小写

标签 java switch-statement java-7

我正在对 Java 7 的新功能进行 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
}

虽然我们在吹毛求疵,但您最好将英文语言环境中的大写字母改为 avoid issues with turkish

关于java - 在 Java 7 中切换忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19628157/

相关文章:

java - 在访问作为引用的类成员时,lambda 表达式是否持有对其封闭实例的引用?

Java swing JFrame 改变实例之间的大小

java - A Switch Java 问题 : case expressions must be constant expressions

javascript - 更少的 switch 语句行?

java - 用于 Mac 的二进制 Java 7

java - 这个静态 block 在 jdk 1.7 中是如何执行的

java - Cosmos DB 使用 Mongo 驱动程序查询数组中的值似乎不可能

java - 'APPLICATION_JSON' 和 'APPLICATION_JSON_VALUE' 之间的区别

c - 为什么这个 switch 语句在运行时结束 while 循环?

java - 如何在 Java 中复制对 File 对象的引用