3ье задание
unknown
java
2 years ago
2.8 kB
2
Indexable
public class Calculator { public static void main(String[] args) { Calculator calculator = new Calculator(); System.out.println(calculator.calculate("10 + 5")); public double calculate(String input) { String[] tokens = input.split(" "); if (tokens.length != 3) { throw new IllegalArgumentException("Неверный формат ввода"); } String operand1 = tokens[0]; String operator = tokens[1]; String operand2 = tokens[2]; double result; if (isNumeric(operand1) && isNumeric(operand2)) { double num1 = Double.parseDouble(operand1); double num2 = Double.parseDouble(operand2); result = performOperation(num1, operator, num2); } else { throw new IllegalArgumentException("Неверный формат чисел"); } return result; } private double performOperation(double num1, String operator, double num2) { double result; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; default: throw new IllegalArgumentException("Неподдерживаемая операция: " + operator); } return result; } public int getNumbers(double num1, double num2) { double sum = num1 + num2; return countEvenDigits(sum); } private int countEvenDigits(double number) { int count = 0; String numberString = String.valueOf((long) number); for (int i = 0; i < numberString.length(); i++) { int digit = Character.getNumericValue(numberString.charAt(i)); if (digit % 2 == 0) { count++; } } return count; } public String getMinimalType(double number) { if (number >= Byte.MIN_VALUE && number <= Byte.MAX_VALUE) { return "Byte"; } else if (number >= Short.MIN_VALUE && number <= Short.MAX_VALUE) { return "Short"; } else if (number >= Integer.MIN_VALUE && number <= Integer.MAX_VALUE) { return "Int"; } else { return "Long"; } } private boolean isNumeric(String str) { try { Double.parseDouble(str); return true; } catch (NumberFormatException e) { return false; } } }
Editor is loading...