剑指Offer 49 把字符串转换成整数
2017-04-09 15:11
357 查看
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0思路
其实这道题就是要考虑周全就行,首先是字符串的鉴别啊,“+”和“-”的判别,然后我就写多了。。。。代码
static public int StrToInt(String str) { if (str==null||str.length()==0) //null和空字符串检验 return 0; char [] a = str.toCharArray(); //消耗点空间呗 if (a[a.length-1]<'0'||a[a.length-1]>'9') //检查最后一个字符是否不是数字 return 0; boolean flag = true; //加法还是减法 int number=0; //假发或者减法第二项 int result = 0; //结果 for (int i = 0; i < a.length;i++) { //写的难看的for循环 while (a[i]!='+'&&a[i]!='-') { //计算第二项 if (a[i]>'9'||((a[i]<'0')&&(a[i]!='+'||a[i]!='-')))//检测 return 0; number = number * 10 + a[i] - '0'; i++; if (i>a.length-1) break; } if (i>=a.length-1) //到尾了 { if (flag) //flag用于判断前一个符号是+还是- result += number; else if (flag==false) result-=number; break; } if (i<a.length&&a[i]=='+') { if (flag) result += number; else if (flag==false) result-=number; flag = true; number = 0; } if (i<a.length&&a[i]=='-') { if (flag) result += number; else if (flag==false) result-=number; flag = false; number = 0; } } return result; }
收获
永远不要小看题目永远不要小看面试官,人家比你溜得多;
相关文章推荐
- 剑指offer 面试题49 把字符串转换成整数
- 剑指offer 面试题49 把字符串转换成整数
- 剑指offer面试题(49)把字符串转换成整数
- (C++)剑指offer-49:把字符串转换成整数(综合)
- 剑指offer---把字符串转换为整数(49)
- 剑指offer面试题49 把字符串转换成整数 (java实现)
- [剑指offer][面试题49]把字符串转换成整数(待完善)
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
- 剑指offer - 面试题49:把字符串转换为整数
- 剑指Offer:面试题49 把字符串转换成整数
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
- 剑指offer-----将一个字符串转换成对应的整数(模拟atoi)
- 剑指offer之字符串到整数的转换,例如输入字符串12345,输出整数12345.
- 剑指offer——把字符串转换成整数
- 剑指offer 49. 把字符串转换成整数
- 剑指offer--把字符串转换成整数
- 【剑指offer-Java版】49把字符串转换为整数
- 【剑指offer】C语言:实现函数可以将一个字符串转换为对应的整数,如+1234输出1234
- LintCode-剑指Offer-(54)转换字符串到整数
- 剑指offer: 把字符串转换成整数