问题:
把一个字符串转成一个整数。
思路:
其实,这道题考的不是怎么去把一个数转成一个整数,而是考你是否能够把所有的情况都考虑完全,我们应该考虑的因素如下:
1. 这个字符串是否是空的。
2. 这个字符串是否有非法字符(非0-9之间的字符)。
3.这个数是正数或者是负数的情况(第一个字符是否为+,-)。
4. 是否存在溢出的情况(这个比较难考虑到)。
public static long atoi(String str) throws Exception {
boolean negative = false;
long value = 0;
if (str == null || str.equals("")) {
throw new Exception("null string or the string has no character!");
}
for (int i = 0; i < str.length(); i++) {
if (i == 0 && (str.charAt(0) == '-' || str.charAt(0) == '+')) {
if (str.charAt(0) == '-') {
negative = true;
}
} else {
if (str.charAt(i) >= '0' && '9' >= str.charAt(i)) {
value = value * 10 + (str.charAt(i) - '0');
if (value > Integer.MAX_VALUE) {
throw new Exception("OUT OF INTEGER RANGE");
}
} else {
throw new NumberFormatException("not an integer");
}
}
}
return negative == true ? value * -1 : value;
}
转载请注明出处: http://blog.csdn.net/beiyeqingteng
分享到:
相关推荐
用C实现atoi,字符转整型。。。。。。
atoi函数,自己实现的。通过输入字符串,实现数字。如果是字母,则转换为相关的对应的数值。
atoi函数的实现 用C语言写的 很简单的 大家可以参考下
atoi函数的源代码,使你更加的了解atoi函数的功能。
自己实现了atoi函数,有2个版本的实现,卸载txt里面,见谅
主要介绍了C语言模拟实现atoi函数的实例详解的相关资料,atoi函数,主要功能是将一个字符串转变为整数,这里就实现这样的函数,需要的朋友可以参考下
这个文档是c中数字转换函数atoi函数原型的代码
itoa函数及atoi函数的区别,C++,MFC
自己用C语言编写的atoi函数,欢迎下载。
自己写的一个字符串转整型的函数,实现了atoi()功能。
vc6 控制台 实现atoi
自行编写的实现atoi、strcat、strcpy函数的程序,希望对初学者有用
atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)atoi实现的三种方法源码(c++)
学习自己实现数值转字符itoa函数、字符串转数值atoi函数和求字符串长度strlen函数
atoi和atof函数的区别及两个函数的功能分别是什么!
枚举窗口,内存对齐,自己实现atoi
C语言常用函数源码 strcmp strlen atoi atol memcpy strchr strstr printf等,不可不看.公司面试的时候很容易让写出其中某些函数的源码.这些函数的源码确实简洁,高效
阿托伊标准C库的函数的示例实现。入门本节介绍如何设置项目所需的构建环境。 该项目已经过 20.10上的GCC 10和Clang 11的C ++编译器测试。 使用以下命令至少安装这些编译器之一。 海湾合作委员会10 ➜ sudo apt -y ...
字符串 转 16进制, 扩展了atoi的功能