Как сложить все числа в строке?

233
04 мая 2018, 14:06

Как вывести сумму чисел в строке? Например: qwe120sd33d03 => 120+33+03 = sum 156. И тому подобное... Вот с однозначными числами проблемы нет, а с многозначными сложнее. Буду благодарен за помощь!

Answer 1

Решение без регулярных выражений, в лоб:

String str = "sdfa3214adsf41agsd";
int sizeOfStr = str.length();
int sum = 0;
int tempNum = 0;
for(int i = 0; i<sizeOfStr; ++i){
  if(Character.isDigit(str.charAt(i))){
    tempNum = (10 * tempNum) + Character.getNumericValue(str.charAt(i));
  } else {
    sum += tempNum;
    tempNum = 0;
  }
}
sum+=tempNum;
System.out.println(sum);
Answer 2

Можно регулярными выражениями:

import java.util.regex.*;

String s = "qwe120sd33d03";
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(s);
Integer sum = 0;
while (m.find()) {
  sum += Integer.parseInt(m.group(1));
}
System.out.printf("%d\n", sum);
READ ALSO
Почему HashMap автоматически сортируется по ключу?

Почему HashMap автоматически сортируется по ключу?

Почему HashMap автоматические сортируется по ключу (по алфавиту)? Программа подсчитывает какова вероятность встретить в строке тот или иной...

337
Как правильно изъять данные из ListView.getAdapter.getItem(Position)

Как правильно изъять данные из ListView.getAdapter.getItem(Position)

Может риторический вопрос, но не понимаю, как изъять данные из адаптераК примеру создать пользовательский класс и в него вкинуть данные из адаптера...

271
Помощь с передвижением GObject

Помощь с передвижением GObject

господаЯ новичок в Java, поэтмому никак не могу решить проблему с которой столкулся, мне нужно чтоб mario передвишался при нажатие на кнопки и изображения...

254