我的任务是编写一个小程序,用于计算每天根据预定义算法(月*日*常数)更改的管理员访问代码。
我掌握了为我的main方法编写的代码,其基本功能来自java.time.LocalDate& format.DateTimeFormatter然后将字符串解析为整数,然后计算并显示结果。
String month = DateTimeFormatter.ofPattern("MM").format(localDate);
String date = DateTimeFormatter.ofPattern("dd").format(localDate);
int monthResult = Integer.parseInt(month);
int dateResult = Integer.parseInt(date);
int adminAccess = monthResult * dateResult * seed;
System.out.println("Admin Passcode is: " + adminAccess);
但现在我想把它提升到一个新的水平,并加入一个选项,通过用户输入手动计算访问代码。
我想验证用户输入并在获取输入之前允许数字或字符串输入,并根据输入分配正确的整数表示。我希望最终能够沿着这些方向做点什么 (预期的计划流程)1。我不确定我是否只是远远超过我的头脑,但我无法完全理解我应该使用For,Do While或Switch来处理验证的功能。我现在所拥有的只有:
class userManual {
public void run() {
String [] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
String [] numMonths = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
Scanner scan = new Scanner(System.in);
String manual = scan.next();
for () {}
}
}
任何想法都将不胜感激!!
答案 0 :(得分:0)
尝试以下方法。我没有对它进行优化,但是将它快速而肮脏地放在一起,以帮助你实现这个想法。确保理解概念而不仅仅是复制粘贴代码。希望这有帮助!
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
class UserManual {
public static void main(String[] args) {
Map<String, Integer> months = new HashMap<String, Integer>();
months.put("January", 1);
months.put("February", 2);
months.put("March", 3);
months.put("April", 4);
months.put("May", 5);
months.put("June", 6);
months.put("July", 7);
months.put("August", 8);
months.put("September", 9);
months.put("October", 10);
months.put("November", 11);
months.put("December", 12);
Scanner scan = new Scanner(System.in);
String manual = scan.next();
String strMonth = "";
if (months.containsKey(manual)) {
strMonth = manual;
} else if (months.containsValue(Integer.valueOf(manual))) {
for (Entry<String, Integer> entry : months.entrySet()) {
if (entry.getValue().equals(Integer.valueOf(manual))) {
strMonth = entry.getKey();
}
}
}
if (!strMonth.equals("")) {
System.out.println("Valid Month --> " + strMonth);
} else {
System.out.println("Input is invalid!");
}
scan.close();
}
}