9
votes

Comment analyser la chaîne contenant un nombre négatif par l'API J2ME?

J'ai une chaîne qui a des chiffres. Je dois analyser cette chaîne et stocker ces chiffres dans int, flotter, etc. En conséquence xxx

je peux le faire par integer.parseint () et et et et et Flotteur.parsefloat () après la fraction. Mais je ne peux pas le faire pour le nombre négatif. Il jette une exception java.lang.numberformatException . Après avoir cherché Web, je n'ai pas trouvé de solution pour ce problème.

Alors, comment puis-je analyser un entier négatif de la chaîne et stocker dans INT à l'aide d'un ensemble API J2ME?


3 commentaires

Formulation déroutante: "Je peux le faire par ... après la fractionner" , vous devez évidemment scinder sur , afin d'analyser quoi que ce soit pour analyser quoi que ce soit.


float.parsefloat () devrait fonctionner, peut-il fournir un autre code / contexte pour l'exception?


Avez-vous envisagé d'utiliser string.startswith méthode? par exemple si (mystring.startswith ("-")) {mystring = mystring.Substring (1); }


5 Réponses :


1
votes

Clarification: Eh bien, je pensais que tu voulais faire la distinction entre Int et flotter. Just float.parsefloat (..) fera également, pas besoin de contient le test . :) mal interprété! xxx

sortie xxx


update Ceci: xxx

fonctionne aussi.


0 commentaires

18
votes

Il ne devrait y avoir rien de spécial pour analyser les nombres négatifs par rapport au nombre positif.

float f = Float.parseFloat("-1.0");


0 commentaires

0
votes

C'est étrange, éventuellement sa question de codage. Integer.parseint () devrait fonctionner avec des nombres positifs et négatifs ainsi que d'autres méthodes similaires (float.parse ...). Ce que vous pouvez faire est toujours de vérifier un signe '-' ou '+' avant d'analyser et d'attribuer le signe après l'analyse. Cette méthode a son avantage, comme si vous receviez un numéro avec '+' signe l'intégrité standard.parseint ne fonctionnera pas.


0 commentaires

0
votes

Vous pouvez diviser par le délimiteur ',' et vérifier s'il y a un signe négatif si multiplier le numéro par -1 ou le faire par xxx

IT fonctionnera correctement.


0 commentaires

2
votes

J'ai eu un problème similaire aujourd'hui et le problème était que le signe moins dans la chaîne d'entrée était en réalité un caractère M-Dash. C'était méchant! Donc, ça vaut vraiment la peine d'être vérifié.


0 commentaires