There are a couple things you can do here to make things simpler. The first is to make your inner loop a while loop instead of a for loop. With this idea, you can build up each number char by char, using Character.getNumericValue() which will return 1 for '1' etc. With charVal, we can incrementally build up our number by multiplying the by 10 and adding the new digit. When we reach a non-digit, we add the current num to our sum, and set sum to 0. Since the code now only operates one char at a time, we don't need i, or j either. With these changes, your updated code is
public int sumNumbers(String str) {
int sum = 0;
int num = 0;
for (char ch : exampleString.toCharArray()) {
int digit = Character.getNumericValue(ch);
if (digit >= 0 && digit <= 9) {
num = num * 10 + digit;
} else {
sum += num;
num = 0;
}
}
return sum + num;
}