带有多个case和case范围的java switch语句

时间:2012-02-14 20:45:40

标签: java switch-statement

我想在java 6中找到一种方法,但它不存在:

switch (c) {
  case ['a'..'z']: return "lower case" ;

有人建议在前一段时间将它添加到java语言中:http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000213.html,在java 7中有什么实现?

在java 6中重写此代码的其他方法有哪些,更像是一个开关/案例:

if (theEnum == MyEnum.A || theEnum == MyEnum.B){
}else if(), else if, else if...

5 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

switch (c) {
    case 'a':
    case 'b':
    case 'c':
    //...
        doSomething();
        break;
}

答案 1 :(得分:2)

最简单的事情是:

if (Character.isLowerCase(c)){
    return "lowercase";
}

哪个也适用于áö和排序

答案 2 :(得分:1)

这个怎么样?

if(c>='a' && c<='z')
    return "lower case";

答案 3 :(得分:0)

第一部分是字符串的一个选项

if(c.equals(c.toLowerCase())) return "lower case";

对于第二部分,您可以将switch与enums ....一起使用。

switch(theEnum){
  case A:
  case B:
     break;
  case C:
     break;
  ...
}

答案 4 :(得分:0)

或者:

if (inRange(c, 'a', 'z')) {
    ...
}

或使用正常的正则表达式,或地图,或......

关于你的枚举表达式,它取决于你实际在做什么,但它可能只是一个带有实现或值的地图。