Пользователь вводит строку с числами. Напишите программу которая выведет все числа, присутствующие в строке, а также выведет максимальное и минимальное число. Числом является любая последовательность цифр. Если между двумя числами находится знак математической операции – результатом будет результат вычисления математической операции. Пример: Если дана строка: 123_2*14ghfg003sad15/2dasdasd8.10 Программа должна вывести: Numbers: 123 28 3 7 8 10 Max: 123 Min: 3 На Java.

Ответы:
Афина Бабура
11-07-2010 14:15

import java.util.*;import java.util.regex.*;import java.lang.*;import java.io.*;class IntInStr{public static void main (String[] args) {try {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String string;string = br.readLine();String[] parts = string.split("[^\d+\-*/]+");Vector nums = new Vector();for(String part : parts) {Matcher isnum = Pattern.compile("^\d+$").matcher(part);Matcher isnumop = Pattern.compile("^(\d+)([+*/-])(\d+)$").matcher(part);if (isnum.matches()) {int ipart = Integer.parseInt(part);nums.add(ipart);}if (isnumop.matches()) {int l = Integer.parseInt(isnumop.group(1)), r = Integer.parseInt(isnumop.group(3)), res;String operation = isnumop.group(2);switch(operation) {case "+":res = l + r;break;case "-":res = l - r;break;case "*":res = l * r;break;case "/":res = l / r;break;default:throw new ArithmeticException("token parse error");}nums.add(res);}}int min = nums.get(0), max = nums.get(0);System.out.println("Numbers:");for (int n : nums) {System.out.println(n);if (n > max) {max = n;}if (n < min) {min = n;}}System.out.format("Max: %d%nMin: %d%n", max, min);} catch(Exception e) {System.out.println(e.getMessage());}}}

Также наши пользователи интересуются:

⭐⭐⭐⭐⭐ Лучший ответ на вопрос «Пользователь вводит строку с числами. Напишите программу которая выведет все числа, присутствующие в строке, а также выведет максимальное и минимальное число. Числом является любая последовательность цифр. Если между двумя числами находится знак математической операции – результатом будет результат вычисления математической операции. Пример: Если дана строка: 123_2*14ghfg003sad15/2dasdasd8.10 Программа должна вывести: Numbers: 123 28 3 7 8 10 Max: 123 Min: 3 На Java.» от пользователя ДИЛЯРА РЯБОВА в разделе Экономика. Задавайте вопросы и делитесь своими знаниями.

Открой этот вопрос на телефоне - включи камеру и наведи на QR-код!