You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java Switch语句对非指定字母统一输出其他的实现方法

Java Switch实现非指定编码统一匹配方案

核心实现:使用default分支(全Java版本兼容)

switch语法原生提供default分支,专门用于处理所有显式case都没有命中的场景,完全不需要逐个编写所有可能的输入分支,刚好适配你的需求。你只需要把代码中写死的case "?"替换为default即可,注意补全break避免语句穿透。

修改后的完整代码如下:

import java.util.Scanner;

public class SwitchPractice {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        String employeeCode;
        System.out.print("Enter employees code: ");
        employeeCode = input.next();
        switch (employeeCode) {
            case "T":
                System.out.print("Technician");
                break;
            case "S":
                System.out.print("Sales");
                break;
            case "M":
                System.out.print("Marketing");
                break;
            // 所有未命中上面case的输入都会走到这个分支
            default:
                System.out.print("OTHER!");
                break;
        }
    }
}

高版本Java简化写法

如果你使用Java 12及以上版本,可以用switch表达式省略break语句,写法更简洁:

String result = switch (employeeCode) {
    case "T" -> "Technician";
    case "S" -> "Sales";
    case "M" -> "Marketing";
    default -> "OTHER!";
};
System.out.print(result);

自定义范围匹配的实现(比如你提到的A-Q区间场景)

如果你确实需要按字符区间分组匹配,不是所有非指定编码都归为其他,可以用以下两种方案:

  • 单个字符场景:先将输入转为char类型,通过ASCII值判断区间,再走switch分支
  • Java 17及以上版本:可以用带条件判断的模式匹配switch,示例如下:
// 先校验输入是单个大写字母的前提下
char code = employeeCode.charAt(0);
String result = switch (code) {
    case 'T' -> "Technician";
    case 'S' -> "Sales";
    case 'M' -> "Marketing";
    case c when c >= 'A' && c <= 'Q' -> "Other";
    default -> "INVALID CODE";
};
System.out.print(result);

内容的提问来源于stack exchange,提问作者ripsly25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:15:03