我有空格分隔的字符串,其中包含数字,例如:
“ abc123 ws32wd3 y3tg43 5tga89 a1a”
我必须解析字符串以从每个令牌中获取数字,然后对从令牌中提取的所有数字求和.我已经写了下面的代码,但是我认为是,如果有很大的字符串,那么可能会出现性能问题.
因此,我的问题是:
>如何在下面的代码中提高性能?
>我们还有另一种编写下面的代码来解决问题的方法吗?
码:
public class TestSum {
public static int doSum(String str){
String[] sArray = str.split(" ");
char[] chr = null;
String temp;
String number = "";
int sum=0;
for(String s : sArray){
chr = s.toCharArray();
for(char c : chr){
temp = String.valueOf(c);
if(isNum(temp)){
number = number + temp;
}
}
sum = sum + Integer.parseInt(number);
number="";
}
return sum;
}
public static boolean isNum(String nStr){
try{
Integer.parseInt(nStr);
return true;
}catch(NumberFormatException nfe){
return false;
}
}
public static void main(String[] args) {
System.out.println("Sum is "+ TestSum.doSum("abc123 ws32wd3 y3tg43 5tga89 a1a"));
}
}