atoi
2015-10-01 23:56
169 查看
考虑+-号
允许前面有空格
但是string输入的数要是标准格式如正数或者负数,或者无符号数。不允许出现例如+-2这种,如果出现,输出0
如果溢出,输出整数的最大值(输入为正数)或者整数的最小值(输入为负数)
允许前面有空格
但是string输入的数要是标准格式如正数或者负数,或者无符号数。不允许出现例如+-2这种,如果出现,输出0
如果溢出,输出整数的最大值(输入为正数)或者整数的最小值(输入为负数)
package arrayAndString; import java.util.*; public class StringToInteger { private String s; private int MaxDiv10 = Integer.MAX_VALUE/10; public StringToInteger() { Scanner sc = new Scanner(System.in); s = sc.nextLine(); } public int solve() { int n = s.length(); int i = 0; while(i<n&&Character.isWhitespace(s.charAt(i))) i++; int sign = 1; if(i<n&&s.charAt(i)=='-') { sign = -1; i++; } else if(i<n&&s.charAt(i)=='+') { sign = 1; i++; } int num = 0; while(i<n&&Character.isDigit(s.charAt(i))) { int digit = Character.getNumericValue(s.charAt(i)); if(num>MaxDiv10||(num==MaxDiv10&&digit>=8)) { return sign>0?Integer.MAX_VALUE:Integer.MIN_VALUE; } num = num*10+digit; i++; } return sign*num; } public static void main(String[] args) { // TODO Auto-generated method stub } }
相关文章推荐
- Android文件关联之Mime Type
- 前n个素数的乘积表
- Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
- 搜索的正确姿势
- 汉诺塔问题以及递归
- Linux网络管理工具
- 零基础学python-19.7 扩展生成器函数
- AIDL跨进程通信在Android的应用
- 零基础学python-19.7 扩展生成器函数
- iOS-GCD常用代码小结
- iOS开发_打包ipa_可运行在越狱手机
- LeetCode #6 ZigZag Conversion (E)
- linux内存管理之kmalloc
- 003 All Primitives In Java
- LeetCode_LinkedList_Easy
- debian连接网络
- komodo,mysql workBeach
- iOS多线程
- Heap:Expedition(POJ 2431)
- 怎么成为一个优秀的程序员,而不是一个优秀的码农?