要求是這樣,一串提示,要求輸入一串整數字符的字符串作為一個年份,判斷一下這一年是平年還是閏年。
如果數字的字符串超出限制或不合法,則輸出錯誤提示,並提示重新輸入,直到正確並計算結果。
工具/原料
一臺再正常不過的已經配置了java環境的電腦
一款適合自己的開發集成環境,筆者自己用的是eclipse Kepler
活躍的大腦,勤勞的雙手
java判斷平閏年
如果妳現在在面試,如果妳現在在考試。如果妳很急忘記了怎麼寫,為了節省您 的寶貴時間,我把核心放在第一條這裡,請查閱。
if (year % 100 == 0) {
if (year % 400 == 0) {
return true;
}
} else {
if (year % 4 == 0) {
return true;
}
}
return false;
接下來,如果獲得一個年份的數字呢?這是我們今天的重頭戲。我們需要做許多判斷,這裡,我們分很多步驟來詳述。
獲取輸入參數,這裡用Scanner類的非靜態nextInt()方法。
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
但是,如果輸入的是字母那不就麻煩了?所以,我們還需要加以判斷。
這裡就不能直接從scanner裡面獲取數字了,我們要獲取的是字符串,
Scanner 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:");
}
如果輸入的數字很長呢?那樣我也不喜歡怎麼辦?
我把ta們限制在-9999到10000之間,怎麼樣?就這樣辦吧~
private static boolean isOutOfRange(int year) {
return year > 9999 year < -10000;
}
最後,我們寫一個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.");
好了,可以了。我把完整代碼截圖給大家: ^_^
注意事項
注意總結,溫故知新嘛!不要玩一玩就過去了。也別變成和筆者一樣的呆子哦~~
耐心,認真,仔細,嚴謹。