#java #java.util.scanner #user-input #variable-assignment
#java #java.util.scanner #пользовательский ввод #назначение переменной
Вопрос:
Я новичок в Java, и я выполняю это задание для romanCalculator. В настоящее время я выполняю часть вычислений, но у меня возникла проблема с некоторыми запрошенными правилами.
Если входные данные неверны, должна быть выведена ошибка.
Итак, это одно из правил, и это единственно возможные входные данные.
<possible Roman number> <operator> <possible Roman number>
или
<possible Roman number> <operator> <possible Roman number>
или
.
Первые 2 просты для понимания, и . заключается в выходе из программы.
Это все, что я мог бы сделать с моими знаниями:
Scanner in = new Scanner(System.in);
String firstRoman = in.next();
String operator = in.next();
String secondRoman = in.next();
Он запрашивает только один раз и только 1 форму ввода.
Я не могу понять, как применить это к запрошенному, я был бы признателен за любую помощь. Спасибо!
Вот пример:
begin{ipoutput} XX end{ipoutput}
begin{ipinput} *xii
begin{ipinput} /vi end{ipinput}
begin{ipoutput} XL
begin{ipoutput} MCDXLV end{ipoutput}
begin{ipinput} .
Ответ №1:
Scanner in = new Scanner(System.in);
String input = "";
System.out.println("Enter your roman numbersnEx: X Vn:");
while(!(input = in.nextLine()).equals("."))
{
//assuming splitting the input around whitespace we can do the following
String[] userInput = input.split("\s ");
if(userInput.length == 3)
{
String firstRoman = userInput[0];
String operator = userInput[1];
String secondRoman = userInput[2];
if(firstRoman.matches("[MCDXLV] ") amp;amp; operator.matches("\ |\-") amp;amp; secondRoman.matches("[MCDXLV] "))
{
//we have some valid things to work with let's continue
System.out.println("Valid input - " input);
}
else{
System.out.println("Invalid input - " input);
}
//do your thing
}
else{
System.out.println("Invalid input - " input);
}
System.out.println("Enter your roman numbersnEx: X Vn:");
}
Комментарии:
1. Большое вам спасибо за помощь, но я написал неправильный второй возможный вариант. это должно быть так
2. Как и в примере, это будет работать с последним ответом, который я получил от предыдущей функции.