我想从字符串中提取整数并添加它们。
前:
String s="ab34yuj789km2";
我应该从它得到整数输出为825(即34 + 789 + 2 = 825)
答案 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();