java的switch语句范围
问题描述:
我想找到一种方法,Java 6中要做到这一点,但它不存在:java的switch语句范围
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...
答
这个怎么样?字符串
if(c.equals(c.toLowerCase())) return "lower case";
到第二部分
switch (c) {
case 'a':
case 'b':
case 'c':
//...
doSomething();
break;
}
答
你可以这样做。
switch(theEnum){
case A:
case B:
break;
case C:
break;
...
}
答
为第一部分,一个选项,你可以使用开关,枚举...:
if(c>='a' && c<='z')
return "lower case";
答
或者:
if (inRange(c, 'a', 'z')) {
...
}
或使用像正常的正则表达式,或地图,或...
至于你的枚举表达,这取决于你实际上在做什么,但它可能只是一个地图与实现或值。
答
最简单的事情是:
if (Character.isLowerCase(c)){
return "lowercase";
}
这也将有O与那种在每一种语言
小写字符存储在字母表顺序和它们之间有没有其他字符的工作。它也属于大写字母。 – shift66 2012-02-14 20:54:58
不,它要复杂得多。这就是区域软件在国际市场上失败的原因。例如。瑞典字母与A,...一起作为单独的字母。德语字母表是A..Z。 Ä,Ö,Ü超出范围,但被视为基本字母。哦,还有没有相当资本的ß。但是问题中的代码也不安全。 – 2012-02-14 21:07:15