从字符串中提取整数并在Java中添加它们

时间:2016-12-07 09:28:38

标签: java arrays arraylist

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

前:

String s="ab34yuj789km2";

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

3 个答案:

答案 0 :(得分: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 :(得分:2)

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

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

答案 2 :(得分:1)

使用Java 8:

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