剑指offer--把字符串转换成整数
2017-08-07 19:33
225 查看
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。如果是非法的整数字符,比如1aa3,则返回0。
分类:字符串
解法1:注意一些特殊情况的要求就好了。
[java] view
plain copy
public int StrToInt(String str) {
char[] chars = str.toCharArray();
long sum = 0;
int max = 0x7FFFFFFF;
int min = 0x80000000;
boolean flag = true;
int i=1;
if(chars.length==0) return 0;
if(chars[0]!='+'){
if(chars[0]=='-') flag = false;
else if(!(chars[0]>='0'&&chars[0]<='9')) return 0;
else i = 0;
}
for(;i<chars.length;i++){
if(chars[i]>='0'&&chars[i]<='9'){
if(sum*10+chars[i]-'0'-1==max && !flag){
return (int) -(sum*10+chars[i]-'0');
}
if(!(sum*10+chars[i]-'0'>=min && sum*10+chars[i]-'0'<=max)){
return 0;
}
sum = sum*10+chars[i]-'0';
}else{
return 0;
}
}
return (int) (flag?sum:-sum);
}
原文链接 http://write.blog.csdn.net/postedit
分类:字符串
解法1:注意一些特殊情况的要求就好了。
[java] view
plain copy
public int StrToInt(String str) {
char[] chars = str.toCharArray();
long sum = 0;
int max = 0x7FFFFFFF;
int min = 0x80000000;
boolean flag = true;
int i=1;
if(chars.length==0) return 0;
if(chars[0]!='+'){
if(chars[0]=='-') flag = false;
else if(!(chars[0]>='0'&&chars[0]<='9')) return 0;
else i = 0;
}
for(;i<chars.length;i++){
if(chars[i]>='0'&&chars[i]<='9'){
if(sum*10+chars[i]-'0'-1==max && !flag){
return (int) -(sum*10+chars[i]-'0');
}
if(!(sum*10+chars[i]-'0'>=min && sum*10+chars[i]-'0'<=max)){
return 0;
}
sum = sum*10+chars[i]-'0';
}else{
return 0;
}
}
return (int) (flag?sum:-sum);
}
原文链接 http://write.blog.csdn.net/postedit
相关文章推荐
- 剑指offer-49.把字符串转换成整数
- 剑指Offer——把字符串转换成整数
- 剑指offer面试题(49)把字符串转换成整数
- [剑指offer][面试题49]把字符串转换成整数(待完善)
- 剑指offer — 把字符串转换成整数
- 剑指offer——字符串转换为整数
- 剑指offer 49. 把字符串转换成整数
- 剑指offer题解 把字符串转换成整数(todo:考虑大整数的情况)
- 【剑指offer】C语言:实现函数可以将一个字符串转换为对应的整数,如+1234输出1234
- 剑指offer--字符串转换为整数
- 【剑指offer】面试题67:把字符串转换成整数
- 剑指offer - 面试题49:把字符串转换为整数
- 剑指offer面试题49 把字符串转换成整数 (java实现)
- 剑指offer--把字符串转换成整数
- 剑指Offer-67:把字符串转换成整数
- 剑指Offer--049-把字符串转换成整数
- 剑指offer50题(把字符串转换成整数)
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
- LintCode-剑指Offer-(54)转换字符串到整数
- 【剑指Offer学习】【面试题49:把字符串转换成整数】