如何计算字符串中所有数字的总和

use*_*429 -5 java

如何计算字符串中所有数字的总和?在下面的示例中,预期结果将是4+8+9+6+3+5.我的尝试如下.我也可以计算那些可以被2整除的数字的总和吗?

int sum=0;
String s = "jklmn489pjro635ops";
for(int i=0; i<s.length(); i++) {
    char temp = s.charAt(i);
    if (Character.isDigit(temp)) {
        int b = Integer.parseInt(String.valueOf(temp));
        sum=sum+b;
    }
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

ren*_*nke 6

将字符解析回String然后再Integer过于昂贵,因为你已经有了一个字符.你应该尝试这样做:

 String a = "jklmn489pjro635ops";
 int sum = 0;
 int evenSum = 0;
 for (char c : a.replaceAll("\\D", "").toCharArray()) {
     int digit = c - '0';
     sum += digit;
     if (digit % 2 == 0) {
         evenSum += digit;
     }
 }
 System.out.println(sum);
 System.out.println(evenSum);
Run Code Online (Sandbox Code Playgroud)