JZ49 convierte cadena a entero

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
Inserte la descripción de la imagen aquí

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;
    }

}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_41620020/article/details/108544512
Recomendado
Clasificación