Konvertieren TextField-Wert Int
Ich habe ein TextField, wo ich Werte eingeben kann; Und ich brauche, um zu konvertieren, wird der Wert eingegeben, um Int und zeigen Sie es mit S. O. Println.
EDIT:
Habe ich nun versucht :
try {
int i = Integer.parseInt(myText.getText());
System.out.println("This is an integer " + i);
}
catch (NumberFormatException x) {
System.out.println("Error : "+ x.getMessage());
}
Aber es ist mir :
This is an integer 122 //When I type 122
Error : For input string: "122,5" //When I type 122,5
Error : For input string: "122.5" //When I type 122.5
Ideen.
EDIT:
Dies ist es :
double d = Double.parseDouble(myText.getText());
int i = (int)d;
InformationsquelleAutor VisaMasterCard | 2011-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, Sie sind mit einem Komma als Trennzeichen, sondern als einen Punkt. Und überhaupt, Sie wäre nicht in der Lage zu analysieren, es als
int
. Sie müsstenDouble.parseDouble(..)
Verwenden können
NumberFormat
entsprechend dem aktuellen Gebietsschema, um das Parsen der Eingabe.Wenn Sie mit SWT (tagged eclipse) - ich denke, man kann das beschränken der möglichen Zeichen, durch das hinzufügen einer
VerifyListener
auf das Textfeld. In Ihrem Hörer, rufen Siedoit()
auf das übergebene event, wenn die Eingabe zulässig ist.Wenn mit AWT (
TextField
als awt text Komponenten) - dann sehen so etwas wie diesesnatürlich, es ist nicht eine int. es ist eine doppelte.
InformationsquelleAutor Bozho
Sie versuchen, parse string "11,5" als integer. Es ist definitiv nicht integer. Daher die exception geworfen wird.
Können Sie versuchen, zu verwenden, Verdoppeln.parseDouble() und das Ergebnis hängt von der Ländereinstellung. Wenn Sie im Gebietsschema Englisch es erwartet dot (.) und nicht im Koma, so dass die Anzahl jedenfalls sollte es Aussehen, 11.5
InformationsquelleAutor AlexR
Wird das Komma geben Sie einen parse-error. Wenn Sie das Komma, Sie können es verwenden als Trennzeichen und analysieren Sie die beiden Seiten getrennt.
Hier ist ein Beispiel für die Trennung von zwei durch Komma getrennte Werte in einem string.
Die Ausgabe wäre:
InformationsquelleAutor Bhavya
11,5
ist nicht eine Zahl, die Java analysieren kann, ohne weitere Interaktion. Sie können ersetzen Sie das Komma durch einen Dezimalpunkt, zusammen mit dem entfernen von Leerzeichen (abhängig von Ihrem Gebietsschema):Hinweise:
Können Sie nicht das Komma als Tausender-Trennzeichen.
InformationsquelleAutor Evan Mulawski
Das ist, weil die
myText.getText()
ist11,5
(nicht numerisch) und nicht11.5
(Doppel).Versuchen Sie,
Diese ersetzt
,
zu.
.Alternativ verwendet
NumberFormat
zu tun, Ihre Zahl-Konvertierung.Außerdem habe ich bemerkt, du bist mit
Integer.parseInt()
beim Parsendouble
zahlen. Das ist, warum Sie müssen Ausnahmen geworfen.Sollten Sie verwenden
NumberFormat.getInstance(locale).parse(myText.getText())
zu bekommen Ihren gewünschten Ergebnis. Vergessen Sie nicht, dassparse()
gibt eineNumber
Objekt, also um eine doppelte, dies zu tun:Ich habe alles versucht, siehe meine updates. Aber nicht arbeiten.
ich bin damit einverstanden....Ich habe meinen Beitrag aktualisiert zu handhaben Lokalisierung.
siehe mein update....
problem mit locale, der compiler kann nicht verstehen locale !
InformationsquelleAutor Buhake Sindi