我最近被要求在java中编写一个函数,它将对字符串中的数字(而不是数字)求和.例如,如果字符串是abc35zz400tt15,则输出应为450.
这就是我写的:
public static void getSum(String a){
String[] arr=a.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
int sum=0;
for(int i=0;i<arr.length;i++){
if(Pattern.matches("[0-9]+", arr[i]))
sum+=Integer.parseInt(arr[i]);
}
System.out.println(sum);
}
Run Code Online (Sandbox Code Playgroud)
是否有更有效的方法来执行此操作,因为他们对上述代码不满意.