- 题目:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
数值为0或者字符串不是一个合法的数值则返回0
如+12345 输出12345 -12345输出-12345 12345输出12345 12ab输出0
- 思路:判断一下首位的符号,然后循环。代码在牛客网上测试时有个例子通不过,因为它要求返回int类型,但是给的有个数超过int范围了
- 代码:
class Solution {
public int StrToInt(String str) {
int result=0;
if((str==null)||(str.length()<=0)) return 0;
int i=0;//记录第一个数的位置
char head=str.charAt(0);//记录正负号
if((head=='+')||(head=='-')) i=1;//开头是符号的话 就从第一个数开始
for(;i<str.length();i++){
int a=str.charAt(i)-'0';
if(a>9||a<0){//要是不是数字,就跳出循环 返回0
result=0;
break;
}
result=result*10+a;//循环 一个数一个数的加
}
if(head=='-') result=0-result;
return result;
}
}