Descripción del Título
Para convertir una cadena en un entero, es necesario que no se pueda utilizar la función de biblioteca que convierte una cadena en un entero. Si el valor es 0 o la cadena no es un valor válido, devuelve 0
public class Solution {
int n = 0;
int bool = 1;
int i = 0;
public int StrToInt(String str) {
int length = str.length();
//0的情况,0 ,空,非法字符串,溢出
//判断字符串为空
if (str.length() == 0) {
return 0;
}
//判断'-'字符串
if(str.charAt(0) == '-'){
bool = - bool;
if (-addOrSubtoInt(str) >= Integer.MIN_VALUE ) {
return -n;
}
}
//判断'+'字符串
if(str.charAt(0) == '+'){
if (addOrSubtoInt(str) <= Integer.MAX_VALUE ) {
return n;
}
}
//不带+ - 转换为数字型
while (length > 0){
if ((str.charAt(i) - '0') >= 0 && (str.charAt(i) - '0') <= 9 ) {
n = (str.charAt(i) - '0') + 10*n;
i++;
length--;
}else {
return 0;
}
}
return n;
}
public int addOrSubtoInt(String str){
int length = str.length();
i = 1;
while (length > 1){
if ((str.charAt(i) - '0') >= 0 && (str.charAt(i) - '0') <= 9 ) {
n = (str.charAt(i) - '0') + 10*n;
i++;
length--;
}else {
return 0;
}
}
return n;
}
}