Насколько я понял, вам нужно посчитать сумму чисел, имеющихся в строке. Прежде всего, это можно сделать, даже не превращая строку в массив строк, а просто используя Scanner
для исходной строки:
String string = "JDK 17 has released on 14 September 2021 with 10 new features, 2 feature removals and 2 feature deprecations.";
Scanner scanner = new Scanner(string);
scanner.useDelimiter("\\s");
int sum = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
sum += scanner.nextInt();
} else {
scanner.next();
}
}
System.out.println(sum);
Если всё же оперировать массивом строк, то нам понадобится метод Integer::parseInt
.
Вот вариант с прохождением по массиву строк "вручную" и с использованием регулярных выражений для проверки того, является ли очередная строка правильным числом, чтобы метод не бросал исключений:
int sum = 0;
for (String word : WORDS) {
if (word.matches("\\d+")) {
sum += Integer.parseInt(word);
}
}
System.out.println(sum);
Однако самый короткий вариант - подключить к этому делу Stream API:
int sum = WORDS.stream()
.filter(word -> word.matches("\\d+"))
.mapToInt(Integer::parseInt)
.sum();
System.out.println(sum);
Во всех трёх случаях результат:
2066