Question:
Given a string, return the sum of the numbers appearing in the string, ignoring all other characters. A number is a series of 1 or more digit chars in a row. (Note: Character.isDigit(char) tests if a char is one of the chars '0', '1', .. '9'. Integer.parseInt(string) converts a string to an int.)
sumNumbers("abc123xyz") → 123
sumNumbers("aa11b33") → 44
sumNumbers("7 11") → 18
Solution
For each digit we find using isDigit() on the passed string , we have to check adjacent characters whether they are digits too. isDigit() is a life saver i must confess.
public int sumNumbers(String s) {int sum=0;String num="";if(str.length()==0) return 0;for(int i=0 ; i<s.length(); i++){if(Character.isDigit(s.charAt(i) ) ){num=""+s.charAt(i);i++;while(i<s.length() && Character.isDigit(s.charAt(i)) ){num+=""+s.charAt(i);i++;}sum+=Integer.parseInt(num);}}return sum;}