String-Überprüfung

drac23

Grünschnabel
Hallo, liebe Community,

ich habe folgendes, wahrscheinlich für Profis lächerlich anmutendes Problem: Ich würde gerne in einem Programm von mir eine Überprüfung eines in einem Textfeld eingegebenen Strings machen. Diese Überprüfung soll mir „1“ zurückgeben, wenn es sich bei dem eingegebenen String um einen double-Wert handelt und „-1“, falls es sich z.B. um einen String oder eine Mischung aus Buchstaben und Zahlen handelt. Diese Überprüfung soll wie folgt aussehen:

public double leseNeuenWertEin(String eingabe) {
/* Überprüfe, ob es sich bei „eingabe“ um einen parsbaren double-Wert handelt
* z.B.: „123456“ sei erlaubt, dahingegen „123abc“ nicht und „abcdef“ erst recht nicht!
* falls ja, dann: „return 1.0;“
* falls nein, dann: „return -1.0;“ und „System.out.println(„Achtung, es sind nur Zahlen erlaubt!“);“
*/​
}



Mein Versuch:

public double leseNeuenWertEin(String eingabe) {
double zahl = Double.parseDouble(eingabe);
double bewertung = 0;
String text = "Achtung, es sind nur Zahlen erlaubt!";
if (zahl == Double.parseDouble(eingabe)) {
bewertung = 1.0;​
}
if (text.equals(eingabe)){
bewertung = -1.0;
System.out.println(text);​
}​
return bewertung;​
}



Aber leider klappt das nicht und es werden etliche Fehlermeldungen ausgespuckt. Bitte um Hilfe, da mein Herumirren und -suchen in der Java-API, mit Google und hier im Forum leider nichts brachte.

Vielen Dank im Voraus
drac
 

Matze

Weltenwanderer
Du solltest wenigstens die Stelle
Java:
double zahl = Double.parseDouble(eingabe);
in einen try - catch packen, denn wenn die eingabe kein Double ist, wird ein Fehler dein Programm abbrechen.

Java:
 String text = "Achtung, es sind nur Zahlen erlaubt!";
...
if (text.equals(eingabe)){
Demnach ist die Bedingung nur true, wenn im Textfeld "Achtung, es sind nur Zahlen erlaubt!" steht.

Verwende das nächste mal bitte die Code-Tags!
 

hammet

himekishi
Matze hat recht. Am einfachsten geht es über eine try-catch-Konstellation. Einfach einer NumberFormatException abfangen und schon weißt du, dass deine Eingabe keine Bestandteil des gewünschten Zahlentypes ist.
 

drac23

Grünschnabel
Du solltest wenigstens die Stelle
Java:
double zahl = Double.parseDouble(eingabe);
in einen try - catch packen, denn wenn die eingabe kein Double ist, wird ein Fehler dein Programm abbrechen.

Java:
 String text = "Achtung, es sind nur Zahlen erlaubt!";
...
if (text.equals(eingabe)){
Demnach ist die Bedingung nur true, wenn im Textfeld "Achtung, es sind nur Zahlen erlaubt!" steht.

Verwende das nächste mal bitte die Code-Tags!

Erst einmal herzlichen Dank und die Info bezüglich der Code-Tags werd ich das nächste Mal nutzen!
Komisch ist nur, dass ich das bereits versucht hatte und es iwie nicht funktionierte, es nun allerdings klappt, naja, muss man nicht verstehen, Hauptsache, es funktioniert - und das tuts!

Schönen Tag noch und großes Lob ans Forum für die Qualität und Schnelligkeit der Antwort ;-)