作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要完成一个小任务,其中要求用户输入月份或等效数字,并且它将返回输入月份的数值或与输入数值对应的月份。约束条件如下: - 它不得包含任何类型的 GUI - 我必须使用 BufferedReader 进行输入 - 我必须使用至少一个 Switch 语句
如果有人有任何想法,我们将不胜感激。到目前为止我的代码如下:
/**
* Month task
*
* @author Dan Foad
* @version 0.01
*/
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Months {
public static void main(String []args) throws IOException {
int iInput;
boolean isParseable;
String szInput;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please type either the number of the month, or the month itself to convert.");
System.out.print("> ");
szInput = br.readLine();
try {
Integer.valueOf(szInput);
isParseable = true;
}
catch(Exception e) {
isParseable = false;
}
if (isParseable) {
iInput = Integer.valueOf(szInput);
System.out.println(numberToMonth(iInput));
}
else {
szInput = szInput.toLowerCase();
System.out.println(monthToNumber(szInput));
}
return;
}
public static String numberToMonth(int iMonth) {
String MonthReturn;
switch(iMonth) {
case (1): MonthReturn = "January"; break;
case (2): MonthReturn = "February"; break;
case (3): MonthReturn = "March"; break;
case (4): MonthReturn = "April"; break;
case (5): MonthReturn = "May"; break;
case (6): MonthReturn = "June"; break;
case (7): MonthReturn = "July"; break;
case (8): MonthReturn = "August"; break;
case (9): MonthReturn = "September"; break;
case (10): MonthReturn = "October"; break;
case (11): MonthReturn = "November"; break;
case (12): MonthReturn = "December"; break;
default: MonthReturn = "0"; break;
}
return MonthReturn;
}
public static int monthToNumber(String szMonth) {
int MonthReturn;
switch(szMonth) {
case ("january"): MonthReturn = 1; break;
case ("february"): MonthReturn = 2; break;
case ("march"): MonthReturn = 3; break;
case ("april"): MonthReturn = 4; break;
case ("may"): MonthReturn = 5; break;
case ("june"): MonthReturn = 6; break;
case ("july"): MonthReturn = 7; break;
case ("august"): MonthReturn = 8; break;
case ("september"): MonthReturn = 9; break;
case ("october"): MonthReturn = 10; break;
case ("november"): MonthReturn = 11; break;
case ("december"): MonthReturn = 12; break;
default: MonthReturn = 0; break;
}
return MonthReturn;
}
}
最佳答案
这个怎么样?
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Calendar;
import static java.util.Calendar.APRIL;
import static java.util.Calendar.AUGUST;
import static java.util.Calendar.DECEMBER;
import static java.util.Calendar.FEBRUARY;
import static java.util.Calendar.JANUARY;
import static java.util.Calendar.JULY;
import static java.util.Calendar.JUNE;
import static java.util.Calendar.MARCH;
import static java.util.Calendar.MAY;
import static java.util.Calendar.NOVEMBER;
import static java.util.Calendar.OCTOBER;
import static java.util.Calendar.SEPTEMBER;
public class Months {
public static void main(String []args) throws IOException {
Integer iInput = null;
String szInput = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please type either the number of the month, or the month itself to convert.");
System.out.print("> ");
szInput = br.readLine();
boolean wasInt = false;
try {
iInput = Integer.valueOf(szInput);
System.out.println(numberToMonth(iInput));
wasInt = true;
}
catch(Exception e) {
}
if (! wasInt) {
szInput = szInput.toLowerCase();
System.out.println(monthToNumber(szInput));
}
return;
}
public static String numberToMonth(int iMonth) {
switch(iMonth-1) {
case (JANUARY): return "January";
case (FEBRUARY): return "February";
case (MARCH): return "March";
case (APRIL): return "April";
case (MAY): return "May";
case (JUNE): return "June";
case (JULY): return "July";
case (AUGUST): return "August";
case (SEPTEMBER): return "September";
case (OCTOBER): return "October";
case (NOVEMBER): return "November";
case (DECEMBER): return "December";
}
return "Unknown";
}
public static int monthToNumber(String szMonth) {
if (szMonth == null) {
return 0;
}
switch(szMonth.toLowerCase()) {
case ("january"): return 1 + JANUARY;
case ("february"): return 1 + FEBRUARY;
case ("march"): return 1 + MARCH;
case ("april"): return 1 + APRIL;
case ("may"): return 1 + MAY;
case ("june"): return 1 + JUNE;
case ("july"): return 1 + JULY;
case ("august"): return 1 + AUGUST;
case ("september"): return 1 + SEPTEMBER;
case ("october"): return 1 + OCTOBER;
case ("november"): return 1 + NOVEMBER;
case ("december"): return 1 + DECEMBER;
}
return 0;
}
}
关于java - 有没有更有效的方法来做到这一点? |月份换算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960304/
您好,我正在尝试在 PHP 中将毫米 (mm) 转换为英寸 (in) 并将千克 (kg) 转换为磅 (lb)。有什么功能可以做到这一点吗?我该怎么做?谢谢。 最佳答案 您可以很容易地编写自己的函数。
我是一名优秀的程序员,十分优秀!