1.忽略小数点,如’a1.3’ 输出4
2.“- -3” 偶数个’-’,后面又是数字则代表4,如果是’-3’则代表-3.
如’‘Ab-33b- -8’’,输出-25
分析:
字符串里的字符要么是位于‘0’到‘9’之间,要么是‘-’,要么是其他。
private static int getStr_sum(String str) {
int AllSum=0,sum=0;//AllSum是最终返回值,sum是连续出现数字字符的和
int MinusNum=0;//代表符号个数
char[] ch1=str.toCharArray();
int len=str.length();
for(int i=0;i<len;i++)
{
int cur=ch1[i]-'0';
if(ch1[i]=='-')
{
MinusNum++;
}
else if(cur<0||cur>9)//如果遇到非数字和符号的,则把sum加到AllSum里。并把sum和MinusNum置0
{
AllSum+=sum*Math.pow(-1,MinusNum);
sum=0;
MinusNum=0;
}
else if(cur>=0&&cur<=9){
sum=cur+sum*10;
}
}
AllSum+=sum;
return AllSum;
}