先用政则表达式把数字取出来 然后 double num = Double.parseDouble(numStr);就行了
public int StrtoInt(String str){ char c[]=str.toCharArray(); int j=0; int k=0; for (int i=0;i<str.length();i++){ switch (c[i]){ case '0': j=0; break; case '1': j=1; break; case '2': j=2; break; case '3': j=3; break; case '4': j=4; break; case '5': j=5; break; case '6': j=6; break; case '7': j=7; break; case '8': j=8; break; case '9': j=9; break; default: j=-1; } if (j==-1){ k=k+j*(str.length()-i); } else{ k=-1; break; } } return k; } 早知道有现成函数,我也不用写那么复杂了。
这样的吗~?
1,直接数字
String s= "1234567890";
用Double.parseDouble(s);
2,任意的
String s="ab#$%^c1234567890def";
循环每一个字符,大于等于0并且小于等于9的就是数字,一直循环到下一个是非数字字符为止,将该值显示出来,否则将该值追加到前一个数字的存放变量上,
然后
double num = Double.parseDouble(numStr);就行了
char c[]=str.toCharArray();
int j=0;
int k=0;
for (int i=0;i<str.length();i++){
switch (c[i]){
case '0':
j=0;
break;
case '1':
j=1;
break;
case '2':
j=2;
break;
case '3':
j=3;
break;
case '4':
j=4;
break;
case '5':
j=5;
break;
case '6':
j=6;
break;
case '7':
j=7;
break;
case '8':
j=8;
break;
case '9':
j=9;
break;
default:
j=-1;
}
if (j==-1){
k=k+j*(str.length()-i);
}
else{
k=-1;
break;
}
}
return k;
}
早知道有现成函数,我也不用写那么复杂了。