Числа должны извлекаться из текста регулярным выражением
Есть код. Нужно достать все цифры из кода при помощи регулярного выражения. Это сделать получилось, однако в консоли большие пропуски между цифрами. Отсюда 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);
}
}
Примечание: решение базируется на идее того, что в рамках своей формулировки задачи вы, на самом деле, имели в виду сумму чисел, а не цифр.