首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【详解】使用Java解决根据输入的星期几的第一个字母来判断是星期几

【详解】使用Java解决根据输入的星期几的第一个字母来判断是星期几

原创
作者头像
大盘鸡拌面
发布2026-03-09 22:36:28
发布2026-03-09 22:36:28
530
举报

使用Java解决根据输入的星期几的第一个字母来判断是星期几

在日常编程中,我们经常会遇到一些需要根据用户输入来进行判断和处理的情况。今天,我们就来探讨一个有趣的小问题:如何通过用户输入的星期几的第一个字母(如果第一个字母相同,则继续判断第二个字母)来判断具体的星期几。我们将使用Java语言来实现这一功能。

1. 需求分析

我们的程序需要满足以下需求:

  • 用户可以输入星期几的英文名称的前几个字母。
  • 程序能够根据这些字母判断出对应的星期几。
  • 如果输入的字母不足以唯一确定一个星期几,程序应该提示用户输入更多的字母。
  • 如果没有对应的星期几,程序应给出错误提示。

2. 设计思路

为了实现上述功能,我们可以采用以下步骤:

  1. 定义星期几的字符串数组:存储一周七天的英文名称。
  2. 获取用户输入:从控制台读取用户的输入。
  3. 匹配输入与星期几:遍历星期几的数组,比较用户输入的前缀是否与数组中的任何一个元素匹配。
  4. 处理匹配结果:根据匹配结果给出相应的反馈。

3. 代码实现

下面是完整的Java代码实现:

代码语言:javascript
复制
import java.util.Scanner;

public class DayOfWeekIdentifier {
    public static void main(String[] args) {
        // 定义一周七天的英文名称
        String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入星期几的英文前缀:");
        String input = scanner.nextLine().trim();
        
        // 用于存储可能的匹配项
        String[] matches = new String[7];
        int matchCount = 0;
        
        // 比较输入的前缀与每个星期几
        for (String day : days) {
            if (day.startsWith(input)) {
                matches[matchCount++] = day;
            }
        }
        
        // 根据匹配结果给出反馈
        if (matchCount == 0) {
            System.out.println("没有找到匹配的星期几,请检查您的输入!");
        } else if (matchCount == 1) {
            System.out.println("您输入的是:" + matches[0]);
        } else {
            System.out.println("输入的前缀不足以唯一确定一个星期几,可能是以下几天之一:");
            for (int i = 0; i < matchCount; i++) {
                System.out.println(matches[i]);
            }
        }
        
        scanner.close();
    }
}

4. 测试与验证

测试用例1:
  • 输入:​​M​
  • 输出:​​您输入的是:Monday​
测试用例2:
  • 输入:​​T​
  • 输出:​​输入的前缀不足以唯一确定一个星期几,可能是以下几天之一:​
  • ​Tuesday​
  • ​Thursday​
测试用例3:
  • 输入:​​X​
  • 输出:​​没有找到匹配的星期几,请检查您的输入!​
代码语言:javascript
复制
import java.util.Scanner;

public class WeekdayIdentifier {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入星期几的英文名称(至少输入前两个字母):");
        String input = scanner.nextLine().toLowerCase();

        if (input.length() < 2) {
            System.out.println("输入的字母太少,请至少输入两个字母。");
            return;
        }

        switch (input.charAt(0)) {
            case 'm':
                if (input.startsWith("mo")) {
                    System.out.println("Monday");
                } else {
                    System.out.println("没有找到匹配的星期几。");
                }
                break;
            case 't':
                if (input.startsWith("tu")) {
                    System.out.println("Tuesday");
                } else if (input.startsWith("th")) {
                    System.out.println("Thursday");
                } else {
                    System.out.println("没有找到匹配的星期几。");
                }
                break;
            case 'w':
                if (input.startsWith("we")) {
                    System.out.println("Wednesday");
                } else {
                    System.out.println("没有找到匹配的星期几。");
                }
                break;
            case 'f':
                if (input.startsWith("fr")) {
                    System.out.println("Friday");
                } else {
                    System.out.println("没有找到匹配的星期几。");
                }
                break;
            case 's':
                if (input.startsWith("sa")) {
                    System.out.println("Saturday");
                } else if (input.startsWith("su")) {
                    System.out.println("Sunday");
                } else {
                    System.out.println("没有找到匹配的星期几。");
                }
                break;
            default:
                System.out.println("没有找到匹配的星期几。");
                break;
        }

        scanner.close();
    }
}
代码解释:
  1. 导入Scanner类:用于从控制台读取用户输入。
  2. 主方法:程序的入口点。
  3. 读取用户输入:提示用户输入星期几的英文名称,并将其转换为小写以简化处理。
  4. 检查输入长度:确保用户至少输入了两个字母。
  5. 使用switch语句:根据输入的第一个字母进行初步判断,然后进一步检查前两个字母以确定具体的星期几。
  6. 输出结果:根据判断结果输出对应的星期几,如果没有找到匹配的星期几,则输出相应的提示信息。
使用说明:

运行程序后,根据提示输入星期几的英文名称(至少前两个字母),程序将输出对应的星期几。例如:

  • 输入 ​​mo​​ 将输出 ​​Monday​
  • 输入 ​​tu​​ 将输出 ​​Tuesday​
  • 输入 ​​th​​ 将输出 ​​Thursday​
  • 输入 ​​we​​ 将输出 ​​Wednesday​
  • 输入 ​​fr​​ 将输出 ​​Friday​
  • 输入 ​​sa​​ 将输出 ​​Saturday​
  • 输入 ​​su​​ 将输出 ​​Sunday​

下面是一个详细的Java程序示例,该程序可以根据用户输入的星期几的第一个字母(如果需要的话,还可以输入第二个字母)来判断是哪一天。

代码语言:javascript
复制
import java.util.Scanner;

public class DayOfWeekGuess {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入星期几的第一个字母:");
        String firstLetter = scanner.nextLine().trim().toUpperCase();

        switch (firstLetter) {
            case "M":
                System.out.println("今天是星期一");
                break;
            case "T":
                System.out.println("请输入星期几的第二个字母:");
                String secondLetterT = scanner.nextLine().trim().toUpperCase();
                if (secondLetterT.equals("U")) {
                    System.out.println("今天是星期二");
                } else if (secondLetterT.equals("H")) {
                    System.out.println("今天是星期四");
                } else {
                    System.out.println("输入错误,请重新输入!");
                }
                break;
            case "W":
                System.out.println("今天是星期三");
                break;
            case "F":
                System.out.println("今天是星期五");
                break;
            case "S":
                System.out.println("请输入星期几的第二个字母:");
                String secondLetterS = scanner.nextLine().trim().toUpperCase();
                if (secondLetterS.equals("A")) {
                    System.out.println("今天是星期六");
                } else if (secondLetterS.equals("U")) {
                    System.out.println("今天是星期日");
                } else {
                    System.out.println("输入错误,请重新输入!");
                }
                break;
            default:
                System.out.println("输入错误,请重新输入!");
                break;
        }

        scanner.close();
    }
}
代码解释
  1. 导入Scanner类
代码语言:javascript
复制
import java.util.Scanner;

​Scanner​​ 类用于获取用户的输入。

  1. 主方法
代码语言:javascript
复制
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

创建一个 ​​Scanner​​ 对象来读取用户输入。

  1. 提示用户输入第一个字母
代码语言:javascript
复制
System.out.println("请输入星期几的第一个字母:");
String firstLetter = scanner.nextLine().trim().toUpperCase();

使用 ​​nextLine()​​ 方法读取用户输入的字符串,并使用 ​​trim()​​ 去除首尾空格,​​toUpperCase()​​ 将输入转换为大写,以便统一处理。

  1. 使用switch-case结构进行判断
代码语言:javascript
复制
switch (firstLetter) {
    case "M":
        System.out.println("今天是星期一");
        break;
    case "T":
        System.out.println("请输入星期几的第二个字母:");
        String secondLetterT = scanner.nextLine().trim().toUpperCase();
        if (secondLetterT.equals("U")) {
            System.out.println("今天是星期二");
        } else if (secondLetterT.equals("H")) {
            System.out.println("今天是星期四");
        } else {
            System.out.println("输入错误,请重新输入!");
        }
        break;
    // 其他case类似处理
    default:
        System.out.println("输入错误,请重新输入!");
        break;
}
  • M:直接判断为星期一。
  • T:需要进一步输入第二个字母,判断是星期二还是星期四。
  • W:直接判断为星期三。
  • F:直接判断为星期五。
  • S:需要进一步输入第二个字母,判断是星期六还是星期日。
  • 其他:输入错误,提示重新输入。
  1. 关闭Scanner对象
代码语言:javascript
复制
scanner.close();

关闭 ​​Scanner​​ 对象,释放资源。

运行示例
  • 输入 ​​M​​:
代码语言:javascript
复制
今天是星期一
  • 输入 ​​T​​​,然后输入 ​​U​​:
代码语言:javascript
复制
今天是星期二
  • 输入 ​​T​​​,然后输入 ​​H​​:
代码语言:javascript
复制
今天是星期四
  • 输入 ​​W​​:
代码语言:javascript
复制
今天是星期三
  • 输入 ​​F​​:
代码语言:javascript
复制
今天是星期五
  • 输入 ​​S​​​,然后输入 ​​A​​:
代码语言:javascript
复制
今天是星期六
  • 输入 ​​S​​​,然后输入 ​​U​​:
代码语言:javascript
复制
今天是星期日
  • 输入其他字母:
代码语言:javascript
复制
输入错误,请重新输入!

希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请告诉我。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Java解决根据输入的星期几的第一个字母来判断是星期几
    • 1. 需求分析
    • 2. 设计思路
    • 3. 代码实现
    • 4. 测试与验证
      • 测试用例1:
      • 测试用例2:
      • 测试用例3:
      • 代码解释:
      • 使用说明:
      • 代码解释
      • 运行示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档