Hallo Leute,
ich sitze nun schon nen Weilchen daran einen String in einen Double umzuwandeln, dabei aber gleichzeitig den im String vorhandenen . durch ein , zu ersetzen. Leider klappt das nicht so wie es soll.
Also: ich habe einen String, nennen wir ihn temp. Dieser String hat z.B. den Wert 14,45. Als erstes soll das , in dem String in einen . umgewandelt werden. Mit Hilfe dieses Forums bin ich schon auf replace gestoßen. Damit geht das recht gut. Nun soll dieser neue String temp = 14.45 in ein Double umgewandelt werden, doch das klappt einfach nicht.
Unten mal ein Auszug aus meinem Quelltext:
Soweit wird das ja akzeptiert, doch beim Ausführen, kommt dann der Fehler:
Die Sache ist, dass "Text" eigentlich schon im Schritt davor verarbeitet wurde. Nun also ein String mit 14,45 kommen sollte, der im Fall case 2, wie oben angegeben verarbeitet werden soll.
Habt ihr noch eine Idee, wie und ob das überhaupt geht? Ich krieg hier noch die Krise. Is sicher ganz einfach, die Lösung, nur ich komm nicht drauf.
Mit anderen Double-Funktionen gehts ja auch, er wirft mir dann aber trotzdem eine Exception, wie oben :-(((
Ich hoffe, ihr könnt mir helfen.
Vielen Dank schonmal.
Leeloo
ich sitze nun schon nen Weilchen daran einen String in einen Double umzuwandeln, dabei aber gleichzeitig den im String vorhandenen . durch ein , zu ersetzen. Leider klappt das nicht so wie es soll.
Also: ich habe einen String, nennen wir ihn temp. Dieser String hat z.B. den Wert 14,45. Als erstes soll das , in dem String in einen . umgewandelt werden. Mit Hilfe dieses Forums bin ich schon auf replace gestoßen. Damit geht das recht gut. Nun soll dieser neue String temp = 14.45 in ein Double umgewandelt werden, doch das klappt einfach nicht.
Unten mal ein Auszug aus meinem Quelltext:
Code:
...
while(st.hasMoreTokens())
{
String s1 = st.nextToken();
System.out.println("aktuelles Token: "+s1);
System.out.println("aktuelles j: "+j);
switch (j) {
case 0: tarif[i].setNummer(Integer.parseInt(s1));
case 1: tarif[i].setName(s1);
case 2:
{
String temp = s1.replace(",", ".");
double temp2 = Double.parseDouble(temp);
tarif[i].setGrundpreis(temp2);
}
}//end switch
j++;
Soweit wird das ja akzeptiert, doch beim Ausführen, kommt dann der Fehler:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Text"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Verarbeitung.tarifeEinlesen(Verarbeitung.java:81)
at Konsole.main(Konsole.java:22)
Die Sache ist, dass "Text" eigentlich schon im Schritt davor verarbeitet wurde. Nun also ein String mit 14,45 kommen sollte, der im Fall case 2, wie oben angegeben verarbeitet werden soll.
Habt ihr noch eine Idee, wie und ob das überhaupt geht? Ich krieg hier noch die Krise. Is sicher ganz einfach, die Lösung, nur ich komm nicht drauf.
Mit anderen Double-Funktionen gehts ja auch, er wirft mir dann aber trotzdem eine Exception, wie oben :-(((
Ich hoffe, ihr könnt mir helfen.
Vielen Dank schonmal.
Leeloo