/**
* 根据用户输入的数字,显示对应星期.
*
* 思路:
* 1.本体符合查表的思想,可以设定一个方法,让用户传入一个整型数值,然后在表中查对应的星期几就可以了.
*
*/
public class WhatDay { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个整数值,我来告诉你输入的是星期几?"); /*这里可以用int num = scan.nextInt() 然后传入方法这个数值,在方法里判断是可以的. 由于学了String类,所以要用String试一试.用String就涉及到转换类型,把String,转成Integer 用它的静态方法: Integer.prase(str); */ String userScan = scan.next(); //注意:此时用户是可以随意输入的,不管数字还是中文 /*加点难度 判断用户输入的是不是整数,用户输入的不是整形数值提示他再次输入.*/ /* 思路: 1.判断用户输入就需要,还是String类型,用正则表达式. 2.String userRegex = "[1-7]"; //由于是判断星期,那么只有1种可能,就是1~7之间的数值 */ String userRegex = "([0][1-7])|[1-7]"; //只接收01,02或者1,2格式 while(true){ if(userScan.matches(userRegex)){ whatDay(userScan); break; }else{ System.out.println("输入非法字符,请再次输入"); userScan = scan.next(); } } } /** * 用户输入数值, 电脑返回星期几的汉子提示 * @param userScan 用户输入的字符串 */ public static void whatDay(String userScan) { //首先字符串传进来需要对其进行类型转换 int num = Integer.parseInt(userScan); //建立一个表,下标与输入的int数字对应 String[] days = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; //集合也可以实现 List<String> dayList = new ArrayList<String>(); dayList.add("星期一"); dayList.add("星期二"); dayList.add("星期三"); dayList.add("星期四"); dayList.add("星期五"); dayList.add("星期六"); dayList.add("星期七"); //输出结果 System.out.println("经过计算,您输入的是: "+dayList.get(num-1)); } /* 输出结果: 请输入一个整数值,我来告诉你输入的是星期几? 06 经过计算,您输入的是: 星期六 请输入一个整数值,我来告诉你输入的是星期几? 7 经过计算,您输入的是: 星期日 */ }
/**
* 根据用户输入的数字,显示对应星期.
*
* 2.用Map去做貌似更容易?
* key 为1~7 value 为星期1~7
* 输入key值,返回value
* 用Map去实现一下
* 结论:Map可以实现,但是并没有体现出Map的特点.
*
*/
/** * 根据用户输入的数字,显示对应星期. * * 2.用Map去做貌似更容易? * key 为1~7 value 为星期1~7 * 输入key值,返回value * 用Map去实现一下 * 结论:Map可以实现,但是并没有体现出Map的特点. * */ public class WhatDayMap { public static void main(String[] args) { int num = 7; //假设用户输入的是数字7.(省略) whatDay(num); //判断星期几的方法 } public static void whatDay(int num) { //因为是有序的,所以用TreeMap,但是感觉Map用有序的,无法发挥出特点.所以此题还是用数组或者集合比较实用 Map<Integer,String> dayMap = new TreeMap<Integer,String>(); dayMap.put(1, "星期一"); dayMap.put(2, "星期二"); dayMap.put(3, "星期三"); dayMap.put(4, "星期四"); dayMap.put(5, "星期五"); dayMap.put(6, "星期六"); dayMap.put(7, "星期日"); System.out.println(dayMap.get(num)); } }
时间: 2024-10-13 01:15:52