根据用户输入的数字,显示对应星期.

/**

*    根据用户输入的数字,显示对应星期.

*

*    思路:

*    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-08-05 19:37:02

根据用户输入的数字,显示对应星期.的相关文章

猜数字大小游戏,用户输入一个数字,如果大了就显示大了,如果小了就显示小了, 如果对了就提示正确(补充难度,只有5次机会,限制数字的范围在百位以内)

产生0-100之间的随机数,包括0和100 double d = Math.random() * 100; int a = (int)Math.round(d); ------------------------------------- package 水仙花数; import java.util.Scanner;/* 猜数字大小游戏,用户输入一个数字,如果大了就显示大了,如果小了就显示小了,如果对了就提示正确(补充难度,只有5次机会,限制数字的范围在百位以内)*/public class t

用户输入一个数字,找到所有能够除尽它的数的总个数

想不到我这个小学生也会做 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript">  //用户输入一个数字,找到所有能够除尽它的数的总个数  var num = window.prompt(

#输出商品列表,用户输入序号,显示用户选中的商品

1 #!/usr/bin/env python 2 #输出商品列表,用户输入序号,显示用户选中的商品 3 #    商品 li = ["手机", "电脑", '鼠标垫', '游艇'] 4 #"""功能要求: 5 #要求用户输入总资产,例如:2000 6 #显示商品列表,让用户根据序号选择商品,加入购物车 7 #购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. 8 #附加:可充值.某商品移除购物车""

禁止用户输入非数字

直接在 html 里限制就可以了,上代码: <input type="text" placeholder="只能输入数字" onkeyup="this.value = this.value.replace(/\D/,'')" >

根据用户输入的月份显示对应的美食

第一种方式 month = int(input('请输入月份,我将显示对应的美食:')) if month == 1: print('在一月你可以吃:一品豆腐.葱烧海参.三丝鱼翅') elif month == 2: print('在二月你可以吃:白扒四宝.糖醋黄河鲤鱼.芫爆鱿鱼卷') elif month ==3: print('在三月你可以吃:九转大肠.油爆双脆.扒原壳鲍鱼') elif month == 4: print('在四月你可以吃:油焖大虾.醋椒鱼.糟熘鱼片.温炝鳜鱼片') eli

[JAVA]—接收用户输入的数字,然后计算该数字的阶乘

import java.util.Scanner;//控制器输入需要用到Scanner public class Factorial { public static void main(String[] args) { System.out.println("请输入一个正数:");//在控制台提示输入 Scanner sc = new Scanner(System.in); String str = sc.nextLine(); /*当通过new Scanner(System.in)创

提示用户一直输入数字(默认为正整数),当用户输入end的时候显示当前输入数字中的最大值。

string input = ""; int max = 0; while (input != "end") { Console.WriteLine("请输入一个正整数,输入end的时候我们将输入当前的最大值:"); input = Console.ReadLine();//可能输入数字, end,或者乱七八糟的字符串. if (input != "end") { try { int number = Convert.ToIn

JS中同步显示并分割输入的数字字符串

题目比较晦涩,来张图来说明要表达的效果: 第一张图的效果就是,用户输入一个数字,上面就显示一个大层,然后显示输入的数字,并把数字用空格按照每四位分割出来.好像在建行的网上银行上面就有这种效果.第二个图的效果就是用户在一个文本框中输入一串数字,然后再光标离开的时候,把数字按照每三位用逗号给分割开来,类似于老外的金钱输入效果. 效果一 同步显示分割分割输入 这种效果中,仿造的就是输入银行卡子类的,故只能够输入数字,需要禁用用户输入的其它字符下面是几种实现方式.先贴上HTML和CSS代码: 1 <ht

【shell】Linux shell 之 判断用户输入的变量是否为数字

本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [[email protected] scripts]# echo $((1+2)) 3 方式二 [[email protected] scripts]# expr 2 + 3 5 [[email protected] scripts]# 注意:使用方式二的时候,要求必须要有间隔.如果使用的是乘法,号必须进行转义写为 \ [[email protected] scripts]# expr 2 * 3 expr: 语法错