Wie analysiere ich einen Zahlenstring, der Kommas enthält, in eine Ganzzahl in Java?
Ich bin immer NumberFormatException
wenn ich versuche zu analysieren 265,858 mit Integer.parseInt()
.
Gibt es eine Möglichkeit zu analysieren, es in eine Ganzzahl?
Kommentar zu dem Problem
die Frage ist nicht sauber, was ist ','? Tausende oder dezimal-Trennzeichen?
Ich denke, es ist... gibt es eine Möglichkeit zu analysieren, es in einem integer?
oder ist es 2 ganze zahlen in ein csv-format? 265 und 858?
"ein integer" ist und nicht 2 Integer-zahlen.
@vivek_jonam, der ursprüngliche Titel war verwirrend, bevor ich bearbeitet. In der informatik wird der Begriff "Komma getrennt" hat eine Besondere Bedeutung. Wenn die Leute Lesen "Komma-getrennt", Sie erwarten, dass der Umgang mit einer Liste von Werten durch Kommata getrennt. Nicht ein einzelner Wert, dass Kommata verwendet werden, für Gruppierungen.
InformationsquelleAutor der Frage vivek_jonam | 2012-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist das Komma ein Dezimaltrennzeichen oder sind diese beiden Nummern? Im ersten Fall müssen Sie
Locale
zuNumberFormat
- Klasse, verwendet das Komma als dezimal-separator:Diese Ergebnisse in
265.858
. Aber mit US-amerikanischen Gebietsschema erhalten Sie265858
:Das ist, weil in Frankreich behandeln Sie als Dezimaltrennzeichen das Komma, während bei UNS - als Gruppe (TEUR) - separator.
Wenn diese beiden zahlen -
String.split()
Sie und analysieren Sie zwei separate Zeichenfolgen unabhängig.InformationsquelleAutor der Antwort Tomasz Nurkiewicz
Können Sie entfernen Sie die
,
vor der Analyse es zu einer int:InformationsquelleAutor der Antwort micha
Wenn es eine Zahl ist & Sie entfernen möchten, Separatoren,
NumberFormat
wird eine Zahl zurückgeben, um Sie. So stellen Sie sicher, verwenden Sie die korrekten Locale-bei Verwendung dergetNumberInstance
Methode.Beispielsweise einige Locales swap-Komma und dezimal-Punkt auf, was Sie verwendet werden können.
Dann verwenden Sie einfach die
intValue
Methode um einen integer zurückgeben. Sie müssen wickeln Sie das ganze in einen try/catch-block, obwohl, berücksichtigen, Analysieren Ausnahmen.InformationsquelleAutor der Antwort anotherdave
Eine Möglichkeit wäre, Streifen die Kommas:
InformationsquelleAutor der Antwort Tim Bender
Oder verwenden Sie
NumberFormat.parse
Einstellung es werden nur integer.http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.html#parse(java.lang.String)
InformationsquelleAutor der Antwort John Gardner
Die erste Sache, die Klicks für mich, vorausgesetzt, dies ist eine einzelne Zahl, ist...
InformationsquelleAutor der Antwort SiB
Versuchen Sie dies:
BEARBEITEN :
wenn Sie es wollen, auf die nächste Ganzzahl gerundet :
InformationsquelleAutor der Antwort SpiXel