[Java] Frage zu Scanner

MasterOfWar

Lt. Commander
Registriert
Jan. 2009
Beiträge
1.397
Abend,
ich versuche ein double Wert aus einem String auszulesen, der code sieht so aus :
PHP:
Scanner scanner = new Scanner(text[1]);
(wobei text[1] zb. (4.6)*(5.0)*x ist)
PHP:
double first =scanner.nextDouble();
jedoch bekomme ich statt 4.6 immer "Exception in thread "main" java.util.InputMismatchException" , was mache ich falsch ?
 
Wenn du (4.6)*(5.0)*x einliest, dann ist es kein Double, sondern ein String.

MismatchException sagt aus, dass etwas erwartet wurde, aber was anderes ankam.
Also Anstatt ein Wert 4.6 kam (4.6) was keine Wert ist.
 
Entweder die Datei so umschreiben, dass es so rauskommt, oder aber du liest es als String komplett ein und machst dann eine Verarbeitung.

Kommt auch drauf an, wie die anderen Daten gespeichert sind. Im schlechtesten Fall musst du prüfen, wie die Klammern ausfallen, z.b. (((5.4)*(5.6))*(3.2)). Wenn die Klammern unwichtig sind, dann kannst du die Klammern aus dem String entfernen und dann nach den Operationen prüfen und so die Werte in einem Array speichern, zum Beispiel:
5.4*6.4*6.7+3.4
A[0] = 5.4;
A[1] = 6.4;

Eine direkte und sofortige Lösung gibt es nicht. Es kann auch sein, dass du dir selber was überlegen musst.
 
Zurück
Oben