在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是遗憾的是,我们java中的switch功能不如C#中的强大,她不支持字符串作为条件。这时我们该怎么办呢? 这种种解决方案比较容易理解。
先看代码:
?
public enum Day
?
{
?
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
?
THURSDAY, FRIDAY, SATURDAY,
?
NOVALUE;
?
?
?
public static Day toDay(String str)
?
{
?
try {
?
return valueOf(str);
?
}
?
catch (Exception ex) {
?
return NOVALUE;
?
}
?
}
?
}
?
main:方法体测试
?
Scanner s=new Scanner(System.in);
?
String day=s.next();//输入的字符串
?
switch(Day.toDay(day.toUpperCase())){
?
case SUNDAY:
?
System.out.println("星期天");
?
?
case MONDAY:
?
System.out.println("星期一");
?
break;
?
case TUESDAY:
?
System.out.println("星期二");
?
break;
?
}
?
看看这个代码,其实是通过定义枚举来实现的。将字符串作为枚举,然后通过toDay方法返回的是一个int的值。这样就可以让switch接受String的条件了。就这么简单!