switch语句相当于用==判断,但字符串不支持这种方式。字符串要用.equals()方法判断才能生效:
if (a.equals("星期一")) {
System.out.println(1);
} else if (a.equals("星期二")) {
System.out.println(2);
} else {
System.out.println("请输入正确的星期");
}
望题主采纳
你把输入的 a 打印一下看看
不管是jdk18,还是jdk8,都支持switch字符串比较,不用equal。 直接走到default就需要看下代码中获取的是什么值了。
可以debug看下。
看了其他两个答主的回答。
既然是JDK19,肯定支持switch...case...字符串的,语法没有问题。
既然输出???,那就是乱码了。
你用搜索引擎搜索一下你所用的开发工具出现乱码问题的解决方法即可。
比如可能命令行是GBK,代码是UTF-8,大概是这样的。