2016-12-07 41 views
0

我想从字符串中提取整数并添加它们。从字符串中提取整数并将它们添加到Java中

例:

String s="ab34yuj789km2"; 

我应该得到整数的输出从它作为825(即,34 + 789 + 2 = 825)

+5

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

+4

http://stackoverflow.com/questions/12216065/how-to-extract-numeric-值从输入字符串在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]+"是一个正则表达式。它匹配一个或多个不是十进制数的字符。十进制数也有一个模式\d

+1

它工作。 @Patrick –

+0

很高兴听到@pb_!请不要忘记标记已接受的答案。 –

2

您可以使用正则表达式从字符串中提取数字。

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

与Java 8:

String str = "ab34yuj789km2"; 
int sum = Arrays.stream(str.split("\\D+")) 
    .filter(s -> !s.isEmpty()) 
    .mapToInt(s -> Integer.parseInt(s)) 
    .sum(); 
相关问题