把一个字符串转换成int类型,比如“123” --> 123
这道题目主要考查边界情况及非法输入的处理,c++跟Java处理起来不一样,Java是不存在整数比Integer.MAX_VALUE还大的数,Java会将溢出的数自动进行处理成合法的值,负数也是同理,剑指offer49题用c++实现,直接比较了一下正数或负数跟最大正整数和最小负整数的值,Java这样比较是不行的。参考Integer("123455")的构造方法,实现如下:
public class _49_StrToInt {//把一个字符串转换成int类型,比如“123” --》 123
public static boolean valid = false;
public static boolean coreFlag=false;
public static int strToInt(String num){
if(num == null || num.length() == 0){
valid = false;
return 0;
}
int a = 0;
if(num.charAt(0)=='+'){//
a = core(num,'+');
}else if(num.charAt(0) == '-'){
a = core(num,'-');
}else if(num.charAt(0) >= &