Created
February 2, 2014 12:59
-
-
Save notpushkin/8768020 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class Predtech { | |
public static void main(String[] args) { | |
Scanner sc = new Scanner(System.in); | |
int n = sc.nextInt(); | |
String[] s = new String[n + 2]; | |
for (int i = 0; i < n + 1; i++) { | |
s[i] = sc.nextLine(); | |
} | |
int sum = 0; | |
// для группировки найденных цифр и парсинга каждой группы в число | |
StringBuilder sb = new StringBuilder(); | |
// для вывода строки-списка найденных чисел | |
StringBuilder sbout = new StringBuilder(); | |
for (int j = 0; j < n + 1; j++) { | |
for (int i = 0; i < s[j].length(); i++) { | |
// проверка на принадлежность к цифрам | |
if (Character.isDigit(s[j].charAt(i))) { | |
// если текущий символ это цифра, то добавляем его в строку; | |
// увеличиваем индекс и смотрим сразу следующий символ; | |
// если будет не_цифра, то выйдем из текущего while | |
while (Character.isDigit(s[j].charAt(i))) { | |
sb.append(s[j].charAt(i)); | |
i++; | |
// защита от выхода счётчика i за пределы длины строки, | |
// если последний символ в тексте - это цифра | |
if (i == s[j].length()) | |
break; | |
} // выходим из while, имея группу цифр в объекте sb | |
int k = Integer.parseInt(sb.toString()); // парсинг sb в число | |
sum += k; // подсчёт суммы | |
sbout.append(k).append(", "); // формирование строки-списка найденных | |
// чисел | |
sb.delete(0, sb.length()); // очистка sb для повторного | |
// использования | |
} else { | |
// если текущий символ - это не_цифра, | |
// просто переходим к следующему | |
continue; | |
} | |
} | |
} | |
if (sbout.length() == 0) { | |
// если список найденных чисел пуст | |
System.out.println("Чисел в тексте не найдено"); | |
} else { | |
System.out.println("Найденные в тексте числа: "); | |
// удаление лишних запятой и пробела, добавленных в конце списка | |
System.out.println(sbout.delete(sbout.length() - 2, | |
sbout.length() - 1)); | |
System.out.println("Сумма чисел в заданном тексте = " + sum); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment