profile
Размещено 5 лет назад по предмету Информатика от A2JHNastuknatochka

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

Программа должна вывести:
Numbers:
123
28
3
7
8
10
Max: 123
Min: 3
На Java.

  1. Ответ на вопрос
    Ответ на вопрос дан BrightOne
    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<Integer> nums = new Vector<Integer>();
    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());
    }
    }
    }
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.