java中case右边的取值(不是case的取值)还可以是字符是吧,那字符有什么规范吗?

java中case 0是什么情况,case右边的取值(不是case的取值)还可以是字符是吧,那字符有什么规范吗?

JDK1.7版本之前,case语句只支持可转换为int型的类型(byte ,short,char,int(其他的都不可以))和枚举类型的数据变量;(char可以转换成int)
JDK1.7中,switch-case语句可以支持字符串类型。

 String input = "Monday";
String output = null;
switch(input){
case "Monday":
    output = "星期一";
    break;
case "Tuesday":
    output = "星期二";
    break;
case "Wednesday":
    output = "星期三";
    break;
case "Thursday":
    output = "星期四";
    break;
case "Friday":
    output = "星期五";
    break;
case "Saturday":
    output = "星期六";
    break;
case "Sunday":
    output = "星期日";
    break;
default:
    throw new IllegalArgumentException("无效的输入参数:" + input);
}
System.out.println(output); //输出:星期一

字符的本质还是数字。字符其实就是ascii编码。你用(int)char转换下就知道了。

Case的参数值只能是int,字符类型char,还有枚举类型的。

switch语句参数表达式只能还整数表达式和枚举常量,整数表达式可以是int和Integer,由于byte short char 可以隐含的转换为int, 所有这些类型和其包装类也是可以的

char,int,enum,String应该就这些