软件测试1

  在实现Atoi function(一个将字符串转换为int型的方法)的时候,由于一个int型数据是用32 bit大小的内存存储,因此一个int型数据的范围为 -21474836482147483647,当将处理好的字符串由Integer.parseInt()转换为int型时,数据可能会出现溢出,导致结果错误。这个问题的修改办法可以是用抛出异常的方法来解决,如下try代码所示,将num = Integer.parseInt(s)语句放入try方法中来。接着在catch中来处理。

public static int myAtoi(String str) {

if(str.isEmpty())return 0;

String string = "1234567890";

String s = "";

int num = 0;

while(str.charAt(0) == ' '){

str = str.substring(1);

}

if("-+".contains(String.valueOf(str.charAt(0)))){

     s += str.charAt(0);

     str = str.substring(1);

}

for(int i = 0; i < str.length(); i++){

if(string.contains(String.valueOf(str.charAt(i)))){

s += str.charAt(i);

}else break;

}

try {

num = Integer.parseInt(s);

} catch (Exception e) {

if(s.length() > 2){

if(Integer.parseInt(s.substring(0,2)) < 0){

return -2147483648;

}else {return 2147483647;}

}else return 0;

}

return num;    

}

原文地址:https://www.cnblogs.com/jied/p/6740792.html