У меня есть этот кодSplit Строка Java Калькулятор
ошибка находится в пределах, если заявления о -, * и/операции «Оператор/не определен для типа аргумента (ов) java.lang.String, Java. lang.String "может кто-нибудь помочь
У меня есть этот кодSplit Строка Java Калькулятор
ошибка находится в пределах, если заявления о -, * и/операции «Оператор/не определен для типа аргумента (ов) java.lang.String, Java. lang.String "может кто-нибудь помочь
Вам необходимо разобрать каждую деталь, чтобы выполнить математическую операцию над ними. Вы не можете выполнять такие операции над строками (но вы можете объединить строки с «+», но не суммой). Что-то вроде этого:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1/part2;
break;
default:
throw new IllegalStateException("Incorrect operation: " + operation);
}
String ans = String.valueOf(answer);
System.out.println(ans);
}
}
Если вы хотите напечатать неправильный символ операции, вам необходимо изменить программу. Прежде всего нам нужно инициализировать целое число переменной переменной «0», и вам нужно создать новую логическую переменную, которая будет указывать правильность операции.
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer = 0;
boolean incorrectOperation = false;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1/part2;
break;
default:
incorrectOperation = true;
}
String ans;
if(incorrectOperation) {
ans = "Incorrect operation: " + operation;
} else {
ans = String.valueOf(answer);
}
System.out.println(ans);
}
}
, который отлично работает! есть ли способ показать ошибку «Неверная операция», используя также «System.out.println»? – zrsecret
Не используйте целые числа для деления или арифметики вообще. Это должно использовать «Двойные» или что-то вроде этого. – tnw
@tnw да, я знаю. Но может быть задача Зака подразумевать использование целых чисел здесь для арифметических операций. –
Помимо использования Integer.parse(), почему бы не просто использовать scanner.nextInt() в случае использования?
int part1 = scan.nextInt();
int part2 = scan.nextInt();
String operation = scan.nextLine().trim();
Что вы ожидаете, когда попытаетесь ** разделите строку ** и почему? В более общем плане, что вы ожидаете, когда выполняете арифметические операции над строкой и почему? Я также мог бы рекомендовать выполнить беглый поиск Google для вашей ошибки, чтобы узнать, почему это происходит и как это исправить. – tnw
Вам нужно будет разобрать строку, чтобы получить номер. Вероятно, вы захотите использовать что-то вроде 'int x = Integer.parseInt (parts [0]);' –
Вы, вероятно, хотите проанализировать две другие строки в виде чисел. –