当我的输入包含字符时,为什么我的代码不起作用?我希望我的代码忽略字符

时间:2015-02-16 02:50:52

标签: java sum-of-digits

package code;

public class Solution3 {

    public static int sumOfDigit(String s) {
        int total = 0;
        for(int i = 0; i < s.length(); i++) {
            total = total + Integer.parseInt(s.substring(i,i+1));
        }
        return total;
    }

    public static void main(String[] args) {
         System.out.println(sumOfDigit("11hhkh01"));
    }
}

如何编辑我的代码让它忽略任何字符,但仍然总结输入的数字?错误为Exception in thread "main" java.lang.NumberFormatException: For input string: "h"

1 个答案:

答案 0 :(得分:0)

因为以下代码行将抛出NumberFormatException:

Integer.parseInt("h");

Integer.parseInt不知道如何解析字母'h'中的数字。

忽略任何不是数字的字符:

for(int i=0; i<s.length(); i++){
    try {
        total = total + Integer.parseInt(s.substring(i,i+1));
    catch(NumberFormatException nfe) {
        // do nothing with this character because it is not a number
    }
}