Wie analysiere ich String mit negativer Nummer von j2me api?

8

Ich habe eine Zeichenfolge mit Zahlen. Ich muss diese Zeichenfolge parsen und diese Zahlen in int, float usw. speichern. Dementsprechend

%Vor%

Ich kann es tun nach Integer.parseInt() und Float.parseFloat() nach dem Teilen. Aber ich kann es nicht für negative Zahlen tun. Es gibt Ausnahme java.lang.NumberFormatException . Nach der Suche im Web konnte ich keine Lösung für dieses Problem finden.

Also, wie kann ich eine negative ganze Zahl von String analysieren und in int speichern mit j2me api set?

    
masiboo 02.02.2012, 13:16
quelle

5 Antworten

17

Es sollte nichts Besonderes sein, negative Zahlen im Vergleich zu positiven Zahlen zu analysieren.

%Vor%

Der obige Code sollte einwandfrei funktionieren.

Was möglicherweise mit Ihrem Code falsch ist, ist, dass Sie versuchen, einen Gleitkommawert mit dem falschen Dezimaltrennzeichen zu analysieren. Wenn Ihr Gebietsschema . als Dezimaltrennzeichen verwendet, ist der obige Code OK. Wenn Ihr Gebietsschema jedoch , als Dezimaltrennzeichen verwendet, schlägt das Parsen fehl (mit NumberFormatException ).

Stellen Sie also sicher, dass Sie das Original korrekt aufteilen und dass alle Teile nach der Teilung ein gültiges Format haben (z. B. mit dem richtigen Dezimaltrennzeichen).

Aktualisierung:
Wenn Sie wissen möchten, wie Sie eine Zahl mit einem bestimmten Gebietsschema analysieren, können Sie sich beispielsweise diese Frage .

    
Nailuj 02.02.2012, 13:22
quelle
2

Ich hatte heute ein ähnliches Problem und das Problem war, dass das Minuszeichen in der Eingabezeichenfolge tatsächlich ein m-Strich-Zeichen war. Das war gemein! Es lohnt sich also, dies zu überprüfen.

    
jweile 22.03.2013 22:01
quelle
1

Klarstellung: Nun, ich dachte, Sie wollten zwischen int und float unterscheiden. Nur Float.parseFloat(..) wird auch funktionieren, muss nicht von contains test. :) Misread!

%Vor%

Ausgabe

%Vor%

Aktualisieren so:

%Vor%

funktioniert auch.

    
Nishant 02.02.2012 13:21
quelle
0

Das ist seltsam, möglicherweise ist es ein Kodierungsproblem. Integer.parseInt () sollte mit positiven und negativen Zahlen sowie anderen ähnlichen Methoden arbeiten (Float.parse ...). Sie können immer nach einem Zeichen "-" oder "+" suchen, bevor Sie das Zeichen nach dem Parsen analysieren und zuweisen. Diese Methode hat ihren Vorteil, als ob Sie eine Zahl mit einem '+' Zeichen erhalten, die Standard Integer.parseInt funktioniert nicht.

    
Kris 02.02.2012 13:26
quelle
0

Sie können durch das Trennzeichen ',' teilen und prüfen, ob es ein negatives Vorzeichen gibt, also multiplizieren Sie die Zahl mit -1 oder machen Sie es mit

%Vor%

Es wird richtig funktionieren.

    
JDC92 16.11.2012 13:33
quelle

Tags und Links