2016-04-21 52 views
-3

我有一個字符串「經濟1牀,類型452,液晶4特大號牀,11大號牀」。 從上面的字符串中,我要求得到1 + 4 = 5的計數。 如果給定字符串中的數字大於10,則忽略要添加的數字(因此忽略452和11)。 任何人都可以爲此寫邏輯?從字符串獲取總數

String a="Economy Double , 1 queen bed 42 lcd"; 
int sum = 0; 
String num = ""; 
for(int i = 0; i < a.length(); i++) { 
    if(Character.isDigit(a.charAt(i))) { 
     num = num + a.charAt(i); 
    } else { 
     if(!num.equals("")) { 
      sum = sum + Integer.parseInt(num); 
      num = ""; 
     } 
    } 
} 
System.out.println(sum); 
+0

份額你已經嘗試了什麼,我們 – sidgate

+1

不會爲你做這一點,但我們一定能幫助你 - 怎麼樣你認爲要解決這個問題嗎? – duduamar

+1

本網站不是代碼編寫服務。嘗試自己解決問題,並在遇到特定問題時再回來。 –

回答

0

假設你只需要考慮數字< 10,那麼這應該這樣做(快速和骯髒和緩慢):

String a = "1 Economy 1 bed, type 452, lcd 4 king bed , 11 queen bed 2"; 
    int sum = 0; 

    for(int i = 0; i < a.length(); i++) { 
     char currChar = a.charAt(i); 
     if(Character.isDigit(currChar)) { 
     if(i -1 >= 0 && i+1 < a.length() && !Character.isDigit(a.charAt(i+1)) && !Character.isDigit(a.charAt(i-1))){ 
      sum += Character.getNumericValue(currChar); 
     }else if(i+1 >= a.length() && !Character.isDigit(a.charAt(i-1))){ 
      sum += Character.getNumericValue(currChar); 
     }else if(i == 0 && !Character.isDigit(a.charAt(i+1))){ 
      sum += Character.getNumericValue(currChar); 
     } 
     } 
    } 
    System.out.println(sum); 
+0

除了不在乎數字> 10. –

+0

是的,但他只想考慮數字<10? – eol

+0

這是添加所有數字。我想添加小於10的數字。 – yogesh

1

大部分代碼是正確的。只需添加條件在這一行:

sum = sum + Integer.parseInt(num); 

並將其更改爲:

sum += (Integer.parseInt(num)<10 ? Integer.parseInt(num) : 0);