Мне нужно создать калькулятор для моего класса Computer Science. Я могу рассчитать двойные значения, если они представляют собой только цифры, такие как 3,4 или 6,8, тогда как другие двойные значения, такие как 64,7 или 6,78, не будут работать из-за того, как я искал строку для удвоений. Мне интересно, есть ли способ найти двойники в строке или нет. Постскриптум Я знаю, что тестирование оператора может быть проще с коммутаторами. Я работаю над этим.Поиск строки с несколькими двойными значениями для одного определенного двойного значения?
public static void main(String[] args){
//Declares my input variables and Scanner variable
String firstInput;
String secondInput;
String userProblem;
char operator;
//Creates the scanner
Scanner userInput = new Scanner(System.in);
//Asks for input
System.out.println("Please enter a problem you would like to calculate (ex. \"2.0 * 4.3\")");
userProblem = userInput.nextLine();
//Finds the doubles in the string and the operator
firstInput = userProblem.substring(0, 3);
secondInput = userProblem.substring(6, 9);
operator = userProblem.charAt(4);
//parses the strings to doubles
double firstNumber = Double.parseDouble(firstInput);
double secondNumber = Double.parseDouble(secondInput);
//Tests for the operator and executes accordingly
if(operator == '+'){
System.out.println(firstNumber + secondNumber);
}
else{
if(operator == '-'){
System.out.println(firstNumber - secondNumber);
}
else{
if(operator == '*'){
System.out.println(firstNumber * secondNumber);
}
else{
if(operator == '/'){
System.out.println(firstNumber/secondNumber);
}
else{
if(operator == '%'){
System.out.println(firstNumber % secondNumber);
}
else{
System.out.println("You did not input correctly");
}
}
}
}
}
}
}
Просьба поделиться ожидаемым пользователем. – gba
Подсказка: подстрока, состоящая только из цифр и '.', является кандидатом на число. – Henry
То, что я ищу для людей, является «6.5 * 3.2» именно так. Одно целое число с одним десятичным размещением, затем пробел, затем еще одно целое число с одним десятичным числом. –