2016-12-07 16 views
0

文字列から整数を抽出して追加したい。文字列から整数を抽出してJavaで追加する

例:

String s="ab34yuj789km2"; 

私は825としてそれから整数の出力を取得する必要があります(つまり、34 + 789 + 2 = 825)

+5

'javasript' =====' java' –

+4

http://stackoverflow.com/questions/12216065/how-to-extract-numeric-! values-from-input-string-in-java – Guy

+0

@Guy私はこの回答をお勧めします:http://stackoverflow.com/a/12216123/982149あなたがリンクした質問の受け入れられた答え。 – Fildor

答えて

2

ここでのstring.Splitを使用することにより、一つの方法です。

public static void main(String[] args) { 
    String s="ab34yuj789km2"; 
    int total = 0; 
    for(String numString : s.split("[^0-9]+")) { 
     if(!numString.isEmpty()) { 
      total += Integer.parseInt(numString); 
     } 
    } 
    // Print the result 
    System.out.println("Total = " + total); 
} 

パターン"[^0-9]+"は正規表現です。小数点ではない1つ以上の文字と一致します。小数の場合は\dというパターンもあります。

+1

それは働いた。 @Patrick –

+0

@pb_を聞いてうれしい!受け入れられた回答に印を付けることを忘れないでください。 –

2

正規表現を使用して文字列から番号を抽出することができます。

のJava 8で
Pattern pattern = Pattern.compile("\\d+"); 
    Matcher matcher = pattern.matcher("ab34yuj789km2"); 
    Integer sum = 0; 
    while(matcher.find()) { 
     sum += Integer.parseInt(matcher.group()); 
    } 
+0

これはあまりにも@Anh Pham働いた –

1

String str = "ab34yuj789km2"; 
int sum = Arrays.stream(str.split("\\D+")) 
    .filter(s -> !s.isEmpty()) 
    .mapToInt(s -> Integer.parseInt(s)) 
    .sum(); 
関連する問題