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

如何让Java代码支持用户输入不区分大小写且可输入选项简写?

实现思路
  • 输入标准化:将用户输入的内容先去除首尾空白,再统一转为全小写(或全大写),从根源消除大小写区分的限制
  • 模糊匹配:将所有菜单选项也转为相同的大小写格式,通过contains()方法判断用户输入是否为选项的子串,无需输入完整内容即可匹配
  • 歧义处理:新增匹配结果校验逻辑,若用户输入同时匹配多个选项(例如输入e同时匹配Play a game和Explore the internet),提示用户输入更精准的内容;若未匹配到任何选项则提示输入无效
修改后的完整代码
package com.unspoken;

import java.util.Scanner;
import java.awt.*;

public class Main {
    public static void main(String[] args) {
        String play = "Play a game";
        String internet = "Explore the internet";
        String calculator = "Use the calculator";
        String quit = "Quit Untouched";
        String pickedEvent = "Unpicked";
        Scanner scanner = new Scanner(System.in);
        System.out.println("Hello, My name is Ghost. What's your name?");
        String name = scanner.nextLine().trim();
        System.out.println("Hello " + name + ". What would you like to do today?");
        while (!pickedEvent.equals("Picked")) {
            System.out.println(play);
            System.out.println(internet);
            System.out.println(calculator);
            System.out.println(quit);
            // 处理用户输入:去空白+转全小写
            String userInput = scanner.nextLine().trim().toLowerCase();
            int matchCount = 0;
            String matchedOption = null;

            // 逐个匹配选项
            if (play.toLowerCase().contains(userInput)) {
                matchCount++;
                matchedOption = play;
            }
            if (internet.toLowerCase().contains(userInput)) {
                matchCount++;
                matchedOption = internet;
            }
            if (calculator.toLowerCase().contains(userInput)) {
                matchCount++;
                matchedOption = calculator;
            }
            if (quit.toLowerCase().contains(userInput)) {
                matchCount++;
                matchedOption = quit;
            }

            // 处理匹配结果
            if (matchCount == 0) {
                System.out.println("未匹配到对应选项,请重新输入");
                continue;
            } else if (matchCount > 1) {
                System.out.println("匹配到多个选项,请输入更明确的内容");
                continue;
            }

            // 唯一匹配,执行对应逻辑
            switch (matchedOption) {
                case "Play a game":
                    System.out.println("Okay " + name + ", Loading games.");
                    pickedEvent = "Picked";
                    break;
                case "Explore the internet":
                    System.out.println("Okay " + name + ", Loading the internet.");
                    pickedEvent = "Picked";
                    break;
                case "Use the calculator":
                    System.out.println("Okay " + name + ", Loading calculator.");
                    pickedEvent = "Picked";
                    break;
                case "Quit Untouched":
                    System.out.println("Are you sure you want to quit Untouched " + name + "?");
                    String quitAnswer = scanner.nextLine().trim();
                    if(quitAnswer.equalsIgnoreCase("Yes")){
                        System.out.println("Okay goodbye " + name + ", Have a nice day.");
                        pickedEvent = "Picked";
                        break;
                    }else if(quitAnswer.equalsIgnoreCase("No")){
                        System.out.println("What would you like to do today " + name + "?");
                    }
            }
        }
        scanner.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:03