要求是这样,一串提示,要求输入一串整数字符的字符串作为一个年份,判断一下这一年是平年还是闰年。如果数字的字符串超出限制或不合法,则输出错误提示,并提示重新输入,直到正确并计算结果。
工具/原料
一台再正常不过的已经配置了java环境的电脑
一款适合自己的开发集成环境,笔者自己用的是eclipse Kepler
活跃的大脑,勤劳的双手
java判断平闰年
1、如果妳现在在面试,如果妳现在在考试。如果妳很急忘记了怎么写,为了节省您 的宝贵时间,我把核心放在第一条这里,请查阅。if (year % 100 == 0像粜杵泳) { if (year % 400 == 0) { return true; } } else { if (year % 4 == 0) { return true; } } return false;
2、接下来,如果获得一个年份的数字呢?这是我们今天的重头戏。我们需要做许多判断,这里,我们分很多步骤来详述。
3、获取输入参数,这里用Scanner类的非静态nextInt()方法。Scanner sc = new Scanner(System.in); int number = sc.nextInt();
4、但是,如果输入的是字母那不就麻烦了?所以,我们还需要加以判断。这里就不能直接从衡痕贤伎scanner里面获取数字了,我们要获取的是字符串,Sca荏鱿胫协nner sc = new Scanner(System.in); String str = sc.nextLine();然后用正则表达式判断一下。if (!str.matches("^-?[1-9][0-9]*$")) { System.out.println("Not an integer number! Input again:"); }
5、如果输入的数字很长呢?那样我也不喜欢怎么办?我把ta们限制在-9999到10000之间,怎么样?就这样办吧~private static boolean isOutOfRange(int year) { return year > 9999 || year < -10000;}
6、最后,我们写一个main方法测试一下,看看是否是咱预期的效果。System.out.println("Please input a year as an integer number:"); int year = scannerYear(); System.out.print("The year of " + year + " is "); System.out.print(isLeapYear(year) ? "" : "not "); System.out.println("a leap year.");
7、好了,可以了。我把完整代码截图给大家: ^_^