• java 练习题


    题目:想控制台输1-3个整数,按顺序为年,月,日。#号键结束输入。若输入一个整数,则为年份,程序判断是闰年还是平年;若输入两个整数,则为年份和月份,程序将输出该年的月份的天数;若输入3个整数;则为年,月,日,程序输出这一天是星期几。若未提供任何数据或大于3个,则提示错误。

    public class Page121 {
    
        /**
         * 项目案例
         * nzx10.24,
         * @param args
         */
        public static int getMonthDay(String leaps,int month){
            String small="4,6,9,11";
            String mon=String.valueOf(month);
            int flag=small.indexOf(mon);
            int monthDay;
            if(month==2){
                monthDay=(leaps.equals( "闰年"))?29:28;
            }else{
                monthDay=(flag!=-1)?30:(31);
            }
                return monthDay;
            }
        public static void main(String[] args) {
            System.out.println("请输入3个以内的数字,以#结束");
            Scanner sc=new Scanner(System.in);
            String str="";
            String leap = null;
            int year=0;
            StringBuffer inputStr=new StringBuffer(str);
            while(!(str=sc.next()).equals("#")){
                inputStr.append(str+";");
            }
            System.out.println(inputStr);
            String temp=inputStr.toString();
            String[] array=temp.split(";");
            
            for(int i=0;i<array.length;i++){
                System.out.println(array[i]);
            }
            
            if(array.length<1||array.length>3){
                System.out.println("输入有误");
            }else{
                year=Integer.valueOf(array[0]).intValue();
                leap=((year%4==0&&year%100!=0)||year%400==0)?"闰年":"平年";
            }
                if(array.length==1){
                System.out.println("今年是"+leap);
            }else if(array.length==2){
                int months=Integer.parseInt(array[1]);
                int monthDay=getMonthDay(leap, months);
                System.out.println(months+"月有"+monthDay+"天");
            }else if(array.length==3){
                int day=Integer.parseInt(array[2]);
                System.out.println("今天是星期"+day);
            }
        }
    }

    结果显示:

    请输入3个以内的数字,以#结束
    2012
    2
    #
    2012;2;
    2012
    2
    2月有29天

    一开始写完,只要输入#,就提示错误Exception in thread "main" Java.lang.NumberFormatException: For input string: "# ",原因为分割的元字符串给错了

  • 相关阅读:
    【BZOJ 2440】[中山市选2011]完全平方数
    【BZOJ 1066】[SCOI2007]蜥蜴
    luogu P1317 低洼地
    luogu P1379 八数码难题
    luogu P1886 滑动窗口
    luogu P1032 字串变换
    题解 P1876 【开灯】
    题解 P1720 【月落乌啼算钱】
    题解 P2863 【[USACO06JAN]牛的舞会The Cow Prom】
    关于线性回归
  • 原文地址:https://www.cnblogs.com/tjlgdx/p/5994420.html
Copyright © 2020-2023  润新知