web-dev-qa-db-fra.com

Jeter une chaîne nulle en entier

Est-il possible de convertir un null en Integer? Le null est en fait une chaîne, que je passe dans ma couche de service qui l'accepte comme un entier. Donc, chaque fois que j'essaye de lancer une chaîne nulle en Integer, cela me jette une exception. Mais je dois convertir le null en Integer.

Merci

9
ARAZA

Vous ne pouvez pas transtyper de String en Integer. Toutefois, si vous essayez de convertir une chaîne en entier et si vous devez fournir une implémentation pour gérer les chaînes null, regardez cet extrait de code:

String str = "...";
// suppose str becomes null after some operation(s).
int number = 0;
try
{
    if(str != null)
      number = Integer.parseInt(str);
}
catch (NumberFormatException e)
{
    number = 0;
}
22
Juvanis
String s= "";  
int i=0;
i=Integer.parseInt(s+0);
System.out.println(i);

Essaye ça

6
Ullas Prabhakar

Vous ne pouvez pas convertir de String en Integer.
Les types de données Java sont de deux types: primitive et référence . Les types primitifs sont: octet, short, int, long, char, float, double . Les types de référence sont: classe, interface, tableau.
octet -> court -> int -> long -> float -> double. est autorisé, ou la diffusion peut être de son propre type ou en un de ses types ou interfaces de sous-classe ou de superclasse.
Donc, c'est un ex. de fonction jeter un oeil

    public int getInteger(String no) {
    if (no != null) {
        return Integer.parseInt(no); //convert your string into integer 
    } else {
        return 0; // or what you want to return if string is Null
    }
}
3
Sumit Singh

Et ça ?

private static void castTest() {
    System.out.println(getInteger(null));
    System.out.println(getInteger("003"));
    int a = getInteger("55");
    System.out.println(a);
}

private static Integer getInteger(String str) {
    if (str == null) {
        return new Integer(0);
    } else {
        return Integer.parseInt(str);
    }
}
2
gtiwari333

Essayez ci-dessous code:application retournera 0 si la chaîne est null sinon il analysera la chaîne comme suit int si la chaîne contient un nombre seul ..

Code:

(str.equals("null")?0:Integer.parseInt(str))
0
Nav

Si vous êtes certain de ne gérer que les valeurs NULL,

int i=0;
i=(str==null?i:Integer.parseInt(str));
System.out.println(i);

pour les chaînes non entières, il générera une exception Numberformat

0