![]() |
[java] koordinatenpaare als string einlesen
hallo!
ich habe ein problem bei folgender aufgabe: ich soll die koordinatenpaare eines vielecks als string einlesen, die folgenden aufbau haben: "(x,y)" wobei x und y Zahlen sind der datensatz wird durch "=" abgeschlossen also ich weiß wie man einen string einliest und dann die einzelnen zeichen ausliest -> damit könnte ich ja schon einmal die zahlen herausfiltern (ich hoffe dieser gedankengang von mir ist richtig - bin nämlich noch programmieranfänger!) nur wie speichere ich die zahlen dann um mit ihnen rechnen zu können - geht das vielleicht mit einem array? bin um jeden vorschlag dankbar! mfg poison |
angenommen x ist 145, dann liest du als string ein: 1 - 4 - 5
eine vorher angelegte INT-Variable zB "xkoor" xkoor=1 xkoor=xkoor*10+4 xkoor=xkoor*10+5 [damit ist xkoor das 145...] mit der ykoor machst es dann genauso dann übernimmst immer xkoor und ykoor in die nächste Zeile des Arrays... Problem gelöst? |
Schaue dir mal die klasse java.awt.Point an, die beschreibt an sich eine koordinate im awt. entweder du kannst diese verwenden, oder du schreibst dir eine eigene klasse die die koordinaten so darstellt, wie du sie brauchst, bzw wenn du damit rechen willst, wird dir sowiseo nichts übrigbleiben als eine eigene klasse und die rechnungsarten al methoden zu implementieren.
|
also ich habe jetzt versucht die zahlen mittels StringTokenizer herauszufiltern aber irgendwo gibt es ein problem...
Code:
was mache ich falsch? mfg poison |
Der String Tokenizer kennt nur einen Delimiter. Du versuchst ihm 3 mitzugenen. Wenn die Eingabe immer (y,y) aussieht dann, entferne den 1. und letzte char. Dan gehts mit einen Stringtokenizer mit delimiter ",". Ausserdem braucht der Tokenizer einen String als Delimiter, keinen char (" " statt ' ').
Ich würde es aber komplett anders machen: mit toCharArray in eine char Array umwandeln und dann mit Charakter.isDigit() die Zahlen rausparsen. Eventuell kannst mit indexOf(',') den String vorher noch teilen. |
Code:
wie bekomme ich da die zahlen heraus? danke auf jeden fall schon mal für deine hilfe! :) mfg poison |
array durchiterien (mit for oder while schleife (wenn char zahl ist diese wegspeichern (zB. in StringBuffer), wenn wieder kein digit mehr ist -> diese mit Integer.parseInt(StringBuffer.toString()) in int umwandeln.
2. Möglichkeit mit indexOf('(') und indexOf(',') und indexOf(')') und der substring Methode von String die Zahlen rausholen. 1.Möglichkeit ist etwas komplizierter, dafür funktinoniert sie mit allen Zahlen in einen String, egal was sonst noch drinnen steht. 2.Möglichkeit ist einfacher, dafür funktiniert sie nur, wenn der String (x,y) aussieht. |
guten morgen!
also ich bekomme noch eine fehlermeldung wenn ich folgenden code versuche zu kompilieren: Konvneck.java [27:1] isDigit(char) in java.lang.Character cannot be applied to (char[]) if ( (Character.isDigit(Zeichen)) ) // Soll überprüfen ob Zeichen eine Zahl ist ^ 1 error Errors compiling Konvneck. ich verstehe die ausgabe nicht ganz - was muss ich ändern? Code:
import eprog.*; |
Ich glaube da gehört statt:
Character.isDigit(Zeichen)) Character.isDigit(Zeichen[i])) <edit> Daher auch die Fehlermeldung: du versuchst die Funktion "isDigit" auf ein Array of char anzuwenden, nicht auf ein einzelnes char. </edit> Jak |
genau dass isses
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 03:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag