2015-02-16 1 views
0
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"Почему мой код не работает, когда мой ввод содержит символ? Я хочу, чтобы мой код игнорировал символ

+2

Потому что «ч» не является числом. В чем у вас проблемы с пониманием? – immibis

ответ

0

Поскольку следующая строка кода будет бросать NumberFormatException:

Integer.parseInt("h"); 

Integer.parseInt не знает, как разобрать число от буквы «ч».

Чтобы игнорировать любые символы, которые не являются цифры:

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 
    } 
} 
+0

как отредактировать мой код, чтобы он игнорировал любой символ, но все же подытожил цифру из ввода? – users1141df

+0

См. Последние изменения ответа. – Jason

Смежные вопросы