49.将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法
的数值则返回0
思路:
若为负数,则输出负数,字符0对应48,9对应57,不在范围内则返回false。
1、把字符串转成字符数组
2、判断第一位是+还是- 。
+时,标志位mark=0,循环从0开始
-时,标志位mark=1,循环从1开始
3、判断ascii码是否在48到57之间
public class Solution {
public int StrToInt(String str) {
if(str==null || str.length()==0)
{
return 0;
}
char ch[]=str.toCharArray();
int mark=0;
int number=0;
if(ch[0]=='-')
mark=1;
for(int i=mark;i<ch.length;i++)
{
if(ch[i]=='+')
continue;
if(ch[i]<48 || ch[i]>57)
return 0;
number=number*10+ch[i]-48;
}
return mark==0?number:-number;
}
}