使用正则提取字符串中的连续数字,并累加且求和
example:
String word = "asdjg12kjsdkgsdgs76876111sdgas7810s9";
extract:
12,76876111,7810, 然后累加求和
code0:Scala
package FrequentPattenDemo
object Demo01 {
def main(args: Array[String]): Unit = {
var sum = 0
val word: String = "asdjg12kjsdkgsdgs76876111sdgas7810s9"
val regex = "(\\d{2,})".r()//code:1
val matcher = regex.pattern.matcher(word)
while(matcher.find){
println(matcher.group(1))
}
//code2; word.split("\\D").filter(_.length >= 2).foreach(_.toCharArray.foreach(sum += _.toInt))
println(sum)
}
}
code1:Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo001 {
public static void main(String[] args) {
int sum = 0;
String word = "asdjg12kjsdkgsdgs76876111sdgas7810s9";
Pattern pattern = Pattern.compile("(\\d{2,})");
Matcher matcher = pattern.matcher(word);
while(matcher.find()){
String group = matcher.group(1);
for (char a:group.toCharArray()) {
sum+=Integer.parseInt(a+"");
}
}
System.out.println(sum);
}
}