![]() |
ok ich habe das ganze mal ein bisschen überarbeitet:
Code:
import eprog.*;das - darf ich ja nicht in den string speichern weil der dann umgewandelt wird in einen float -> das brauch ich aber weil es ja sonst eine ganz andere zahl ist! außerdem nimmt er immer nur eine Zahl an -> also wenn ich eine kommazahl eingebe z.b 3.4 dann nimmt er 3 als zahl an und 4 als einzelne zahl an -> wie kann ich das ändern! ich danke euch schon mal für eure hilfe! mfg poison |
mach noch zusätzlich eine abfrage || (tmp == '.'), dann wird . dazu gespeichert
|
leider funktioniert das so nicht -> es tritt das gleiche problem wie beim -
wenn ich z.b. (3.4,5) eingebe macht er folgende fehlermeldung (3.4,5) java.lang.NumberFormatException: For input string: "." at java.lang.NumberFormatException.forInputString(Num berFormatException.java:48) at java.lang.FloatingDecimal.readJavaFormatString(Flo atingDecimal.java:1207) at java.lang.Float.parseFloat(Float.java:222) at Konvneck.einlesen(Konvneck.java:42) at Konvneck.main(Konvneck.java:15) Exception in thread "main" 7 3.0 außerdem bin ich gerade draufgekommen kann ich nicht mehr als ein koordinatenpaar einlesen dann macht er folgende fehlermeldung: eingabe: (3,4) (5,6) 3.0 4.0 java.lang.ArrayIndexOutOfBoundsException: 5 at Konvneck.einlesen(Konvneck.java:35) at Konvneck.main(Konvneck.java:15) Exception in thread "main" was muss ich hier machen? mfg poison |
der fehler beim konvertrieren liegt darin, dass du jede char gleich in eine float umwandelst, erst umwandeln, wenn wieder ein anderes zeichen als -,. oder zahl kommt (also die umwandlungsroutine in den else zweig stecken:
Code:
StringBuffer zahlen = new Stringbuffer();ps: java Konvention ist, dass variablennamen klein geschrieben werden, genauso wie methoden und packages, nur klassennamen werden groß geschrieben pps: den code oben habe ich nicht überprüft, nur so aus dem stegreif geschrieben ;) |
Mir ist gerade eine andere möglichkeit eingefallen:
Du suchst im String nach "(" und ")", machst String[] temp=input.substring(klammeraufposition,klammerzup osition).split(",",2); Damit hast du ein String[] temp float f; for (int i=0;i<temp.length;i++){ try{ f=Float.parseFloat(temp[i]) //mach irgendetwas mit f } catch (NumberFormatException e){} } Durch das parseFloat spart man sich das ganze suchen nach .,-,usw. Jak |
das ist mein 2. Vorschlag oben gewesen
|
Sorry, hab ich übersehen.
dein 2.Vorschlag würde wohl etwa so aussehen. Code:
float xKoord,yKoord; |
hallo jak!
danke für deinen vorschlag, aber jetzt habe ich mich schon so lange mit tarjans version herumgeschlagen - werd jetzt dabei bleiben ich glaube es gibt ein kleines problem mit der else if abfrage - das ganze wird zwar jetzt ohne fehler kompiliert aber wenn ich versuche etwas einzugeben macht er gar nichts... :( Code:
import eprog.*; |
habs mir angesehen, die zeile StringBuffer zahlen = new StringBuffer(); gehört vor die for schleife, ansonsten wird der stringbuffer immer wieder neu angelegt, so sollte es funktionieren:
Code:
StringBuffer zahlen = new StringBuffer(); |
noch eine zusätzliche frage: welchen editor beutzt du eigentlich zum erstellen der klassen?
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 13:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag