//字符串中数字子串的求和
public class NumSum{
//字符串中数字子串的求和
public static int numSum(String str)
{
if(str==null)
{
return 0;
}
//字符串转换成数组
char[]charArr=str.toCharArray();
int res=0;//目前的累加和
int num=0; //当前收集到的数字
boolean posi=true; //num累加到res里,num是正还是负
int cur=0;//表示当前遍历到的数字
for(int i=0;i<charArr.length;i++)
{
cur=charArr[i]-'0';
//代表字符
if(cur<0||cur>9)
{
res+=num;
num=0;
if(charArr[i]=='-')
{
if(i-1>-1&&charArr[i-1]=='-')
{
posi=!posi;
}else{
posi=false;
}
}else{
posi=true;
}
}else
{
num=num*10+(posi?cur:-cur);
}
}
res+=num;
return res;
}
public static void main(String[]args)
{
String str="A1CD2E33";
System.out.println(numSum(str));
}
}