Moyen approprié d’éviter à parseInt de générer une exception NumberFormatException pour la chaîne d’entrée:

Quand je lance parseInt:

Integer.parseInt(mySsortingng); 

il jette:

 NumberFormatException: For input ssortingng: "" 

Est-ce que cela signifie que j’ai fait quelque chose comme ça?

 if(SsortingngUtils.isNotBlank(mySsortingng)) return Integer.parseInt(mySsortingng); else return 0; 

Eh bien, vous pouvez utiliser l’opérateur conditionnel à la place:

 return SsortingngUtils.isNotBlank(mySsortingng) ? Integer.parseInt(mySsortingng) : 0; 

Si vous devez le faire à plusieurs endroits, vous voudrez probablement le mettre dans une méthode distincte. Notez que vous devez également prendre en compte les situations où mySsortingng est null ou contient du texte non numérique.

Oui, mais: utilisez une méthode simple (et éliminez le redondant) ou utilisez une implémentation existante, telle que NumberUtils.toInt(str, defaultValue) Commons Lang NumberUtils.toInt(str, defaultValue) :

 NumberUtils.toInt(mySsortingng, 0); 

Cette méthode gère null valeurs null et les échecs de conversion.

Si la chaîne peut être vide, je le fais de cette façon:

 Integer.parseInt("0" + inputSsortingng) 

Quand je ne suis pas sûr qu’il ne contient que des chiffres:

 Integer.parseInt(0 + inputSsortingng.replaceAll("\\D+","")) 

Ce que vous avez est bien, mais en tant que style de codage, je préfère effectuer des tests “positifs” ( isBlank ), plutôt que “négatifs” ( isNotBlank ), c’est-à-dire

 if (SsortingngUtils.isBlank(mySsortingng)) { return 0; } return Integer.parseInt(mySsortingng); // Note: No need for else when the if returns 

ou, plus succinctement:

 return SsortingngUtils.isBlank(mySsortingng) ? 0 : Integer.parseInt(mySsortingng); 

Oui. (Validez vos entrées avant de faire des hypothèses sur leur contenu. 🙂

+1 pour avoir déjà trouvé le SsortingngUtils commun d’Apache avec SsortingngUtils .

Integer.parseInt(Ssortingng) n’accepte pas les entrées non numériques, y compris les Integer.parseInt(Ssortingng) et les chaînes vides.

Soit vous prémunir contre ce que vous avez suggéré, soit attraper le NFE.

Je ne sais pas pourquoi je cherchais cela, mais voici le moyen le plus simple:

 int test=str.isEmpty()?0:Integer.parseInt(str);