【详解】使用Java解决根据输入的星期几的第一个字母来判断是星期几
【摘要】 使用Java解决根据输入的星期几的第一个字母来判断是星期几在日常编程中,我们经常会遇到一些需要根据用户输入来进行判断和处理的情况。今天,我们就来探讨一个有趣的小问题:如何通过用户输入的星期几的第一个字母(如果第一个字母相同,则继续判断第二个字母)来判断具体的星期几。我们将使用Java语言来实现这一功能。1. 需求分析我们的程序需要满足以下需求:用户可以输入星期几的英文名称的前几个字母。程序能...
使用Java解决根据输入的星期几的第一个字母来判断是星期几
在日常编程中,我们经常会遇到一些需要根据用户输入来进行判断和处理的情况。今天,我们就来探讨一个有趣的小问题:如何通过用户输入的星期几的第一个字母(如果第一个字母相同,则继续判断第二个字母)来判断具体的星期几。我们将使用Java语言来实现这一功能。
1. 需求分析
我们的程序需要满足以下需求:
- 用户可以输入星期几的英文名称的前几个字母。
- 程序能够根据这些字母判断出对应的星期几。
- 如果输入的字母不足以唯一确定一个星期几,程序应该提示用户输入更多的字母。
- 如果没有对应的星期几,程序应给出错误提示。
2. 设计思路
为了实现上述功能,我们可以采用以下步骤:
- 定义星期几的字符串数组:存储一周七天的英文名称。
- 获取用户输入:从控制台读取用户的输入。
- 匹配输入与星期几:遍历星期几的数组,比较用户输入的前缀是否与数组中的任何一个元素匹配。
- 处理匹配结果:根据匹配结果给出相应的反馈。
3. 代码实现
下面是完整的Java代码实现:
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 - 输出:
没有找到匹配的星期几,请检查您的输入!
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();
}
}
代码解释:
- 导入Scanner类:用于从控制台读取用户输入。
- 主方法:程序的入口点。
- 读取用户输入:提示用户输入星期几的英文名称,并将其转换为小写以简化处理。
- 检查输入长度:确保用户至少输入了两个字母。
- 使用switch语句:根据输入的第一个字母进行初步判断,然后进一步检查前两个字母以确定具体的星期几。
- 输出结果:根据判断结果输出对应的星期几,如果没有找到匹配的星期几,则输出相应的提示信息。
使用说明:
运行程序后,根据提示输入星期几的英文名称(至少前两个字母),程序将输出对应的星期几。例如:
- 输入
mo 将输出 Monday - 输入
tu 将输出 Tuesday - 输入
th 将输出 Thursday - 输入
we 将输出 Wednesday - 输入
fr 将输出 Friday - 输入
sa 将输出 Saturday - 输入
su 将输出 Sunday
下面是一个详细的Java程序示例,该程序可以根据用户输入的星期几的第一个字母(如果需要的话,还可以输入第二个字母)来判断是哪一天。
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();
}
}
代码解释
- 导入Scanner类:
import java.util.Scanner;
Scanner 类用于获取用户的输入。
- 主方法:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
创建一个 Scanner 对象来读取用户输入。
- 提示用户输入第一个字母:
System.out.println("请输入星期几的第一个字母:");
String firstLetter = scanner.nextLine().trim().toUpperCase();
使用 nextLine() 方法读取用户输入的字符串,并使用 trim() 去除首尾空格,toUpperCase() 将输入转换为大写,以便统一处理。
- 使用switch-case结构进行判断:
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:需要进一步输入第二个字母,判断是星期六还是星期日。
- 其他:输入错误,提示重新输入。
- 关闭Scanner对象:
scanner.close();
关闭 Scanner 对象,释放资源。
运行示例
- 输入
M:
今天是星期一
- 输入
T,然后输入 U:
今天是星期二
- 输入
T,然后输入 H:
今天是星期四
- 输入
W:
今天是星期三
- 输入
F:
今天是星期五
- 输入
S,然后输入 A:
今天是星期六
- 输入
S,然后输入 U:
今天是星期日
- 输入其他字母:
输入错误,请重新输入!
希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请告诉我。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者


评论(0)