Числа должны извлекаться из текста регулярным выражением

Есть код. Нужно достать все цифры из кода при помощи регулярного выражения. Это сделать получилось, однако в консоли большие пропуски между цифрами. Отсюда 2 вопроса:

  1. Как убрать эти пропуски?
  2. Как после можно будет посчитать сумму всех цифр? Не совсем понимаю, как правильно можно будет это сделать.
public class Loader
{
    public static void main(String[] args)
    {
        String text = "У Васи в кармане 10 рублей, у Ани - 20 рублей, а у Жени - 41 рубль.";


        String[] sentences = text.split("[^0-9]");
        for (int i = 0; i < sentences.length; i++)
        {
            System.out.println(sentences[i].trim());
        }

Ответы (1 шт):

Автор решения: StateItPrimitive

Пример решения:

В качестве одного из вариантов решения задачи можно непосредственно напрямую воспользоваться классами для работы с регулярными выражениями, работа с которыми инкапсулирована в рамках метода String.split(): Pattern и Matcher.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
    public static void main(String[] args) {
        showOutSumOfNumbers("У Васи в кармане 10 рублей, у Ани - 20 рублей, а у Жени - 41 рубль.");
    }

    private static void showOutSumOfNumbers(String text) {
        int result = 0;
        Matcher matcher = Pattern.compile("\\d+").matcher(text);
        while (matcher.find()) {
            int value = Integer.parseInt(matcher.group());
            System.out.print(value + " ");
            result += value;
        }
        System.out.println(result);
    }
}

Примечание: решение базируется на идее того, что в рамках своей формулировки задачи вы, на самом деле, имели в виду сумму чисел, а не цифр.

→ Ссылка