2013-05-17 2 views
1

J'essaye d'analyser une chaîne en valeur int. Mais je reçois une exception NumberFormat. Je vous écris le code ci-dessous:Obtention d'une exception NumberFormat dans BlackBerry

 Logger.out("Myprof", "Contact "+strContact); 
    try{ 
     i = Integer.parseInt(strContact.trim()); 
     Logger.out("Myprof", "Contact8686866  "+i); 
    } 
    catch(Exception e) 
    { 
     Logger.out("Myprof", "exce "+e.toString()); 
    } 

Maintenant, quand je passe comme ci-dessous:

i = Integer.parseInt("11223344"); 

Je reçois la valeur i comme 11223344.

Où que je fais mal ici? S'il vous plaît aidez.

+4

Il est probable que 'strContact' contient des caractères non numériques ou est vide. Générez la variable avant d'essayer de l'analyser. Qu'est-ce que le stacktrace complet vous dit? – Reimeus

+0

strContact est une chaîne. Il donne la valeur correcte dans cette ligne: Logger.out ("Myprof", "Contact" + strContact); –

+0

il me donne ce résultat dans cette ligne: Myprof: -: contact 9875566521 –

Répondre

4

La valeur d'entrée de 9875566521 est supérieure à Integer.MAX_VALUE de 2147483647. Au lieu de cela, utilisez un Long. (BigInteger pas une option pour Blackberry)

Long number = Long.parseLong(strContact); 
Logger.out("Myprof", "Contact8686866 " + number); 

Si les numéros d'entrée destinée sont supérieures à Long.MAX_VALUE, alors Character.iDigit peut être utilisé comme une alternative pour valider les valeurs:

private static boolean isValidNumber(String strContact) { 
    for (int i = 0; i < strContact.length(); i++) { 
     if (!Character.isDigit(strContact.charAt(i))) { 
     return false; 
     } 
    } 

    return true; 
} 
+0

BigInteger n'est pas disponible pour BlackBerry. Donc, si je vais entrer la valeur comme 21345, alors il devrait être en mesure d'analyser. Je vais essayer ça. –

+0

Si vos numéros sont _very_ large, alors vous seriez mieux servi en vérifiant chacun des chiffres individuellement en utilisant 'Character.isDigit' – Reimeus

+0

oui quand je donne 1234567890, il affiche la valeur correcte –

Questions connexes