2Danke
ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
434
434
EMPFEHLEN
-
Hallo,
ich programmiere schon eine Weile an einem Siedler von Catan-Klon (2D) in Java. Nun habe ich folgendes Problem:
Ich habe einen Konverter eingebaut, der ältere Savegames erkennt und automatisch die nötigen Angaben dazuschreibt, damit das Programm die Saves lesen kann. Dazu habe ich eine Versionsangabe in die Savedatei geschrieben, die vom Konverter eingelesen werden soll, damit er weiß, was genau er noch dazu schreiben soll.
In der Datei sieht das Ganze so aus:
"Version: v0.5.1"
Hiermit versuche ich an die Versionsnummer zu kommen und diese abzugleichen, doch er überspringt beide If-Abfragen IMMER:
Code :1 2 3 4 5
//Erkennen neuerer Versionen if (zeile[0].split("v")[1].equals("0.5.1")) saveVersion = V051; if (zeile[0].split("v")[1].equals("0.5.2")) saveVersion = V052;
zeile[0] ist die erste eingelesene Zeile. Diese wird auch komplett richtig eingelesen (mitüberprüft).Code :1
System.out.println()
Auchentspricht "0.5.1" aber TROTZDEM sagt er, dass diese beiden Strings nicht identisch sind.Code :1
zeile[0].split("v")[1]
Weiß jemand wodran das liegt?
Danke schonmal im Vorraus
Geändert von NicoVIII (29.08.11 um 11:52 Uhr)
-
1. Bist du sicher, dass da nicht noch ein \t, \r, \n oder ähnliches am Ende der Zeile hängt?
2. Ich würde dazu nicht split verwenden (zumal du es mehrfach aufrufst). Nimm doch einfach contains
Code java:1
zeile[0].contains("v0.5.1")
Oder wenn du willst, extrahiere die Versionsnummer mittels regulärem Ausdruck.
-
@CPolyIch würde dazu nicht split verwenden (zumal du es mehrfach aufrufst). Nimm doch einfach contains
Vielen Dank! Jetzt läuft es einwandfrei
Da ich mit contains noch nichts zutun hatte, habe ich gar nicht dran gedacht zu überprüfen, ob der String enthalten ist, aber du hast Recht, ist natürlich einfacher. 
@Fabio
Ich würde natürlich trotzdem gerne den Fehler finden und ich denke dass da tatsächlich etwas nicht sichtbares fehlt, wie CPoly bereits erwähnte. Ich verwende zum Speichern folgenden Code:
f ist in diesem Fall ein Filewriter.Code :1 2
f.write("Version: v0.5.2"); f.write(Character.LINE_SEPARATOR);Sheldon Cooper:
Es ist nur das dreidimensionale Denken, das die Vorstellungskraft beschränkt. Könnte ich mir die Hosen über den Kopf ausziehen? Natürlich nicht! Mein Körper ist im Weg! Aber wenn wir nun Zugang hätten zu höheren Dimensionen, könnten wir sie einfach durch die vierte Dimension hindurch um unseren Körper herumschlingen und dann müssten wir nie wieder die Hosen herunterlassen
-
29.08.11 11:43 #4
Warum speicherst du denn die Strings in einem FileWriter? Willst du das in die Datei dann direkt reinschreiben? Oder wofür machst du das?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Ja, ich schreibe mit dem Filewriter die Savedatei, wenn das Spiel abgespeichert wird.
Dann werden alle erforderlichen Daten hineingeschrieben und abschließend:Code :1
FileWriter f = new FileWriter(pfad+".svc");
Code :1 2
f.flush(); f.close();
Sheldon Cooper:
Es ist nur das dreidimensionale Denken, das die Vorstellungskraft beschränkt. Könnte ich mir die Hosen über den Kopf ausziehen? Natürlich nicht! Mein Körper ist im Weg! Aber wenn wir nun Zugang hätten zu höheren Dimensionen, könnten wir sie einfach durch die vierte Dimension hindurch um unseren Körper herumschlingen und dann müssten wir nie wieder die Hosen herunterlassen
-
Nimm zum Schreiben http://download.oracle.com/javase/1....redWriter.html (newLine() anstatt Character.LINE_SEPARATOR) und zum Lesen http://download.oracle.com/javase/1,...redReader.html (readLine() anstelle von split(Character.LINE_SEPARATOR)).
-
29.08.11 11:52 #7
Aber die Überprüfung, welche Version das ist, die machst du doch schon früher, oder nicht?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
@CPoly
Tatsächlich benutze ich zum Lesen den BufferedReader schon, nur zum Schreiben noch den FileWriter, werde dies jetzt noch ändern.
@Fabio
Der Konverter durchläuft 3 Phasen:
-Das Laden der Datei in das String-Array zeile[]
-Das Erkennen der Version der Datei
-Und das anschließende Neuschreiben der "Save.svc"
Jaa, der Konverter erkennt, welche Version vorliegt und speichert dann die bearbeitete Version.
Aber ich versteh jetzt nicht ganz wodrauf du hinauswillst!?Sheldon Cooper:
Es ist nur das dreidimensionale Denken, das die Vorstellungskraft beschränkt. Könnte ich mir die Hosen über den Kopf ausziehen? Natürlich nicht! Mein Körper ist im Weg! Aber wenn wir nun Zugang hätten zu höheren Dimensionen, könnten wir sie einfach durch die vierte Dimension hindurch um unseren Körper herumschlingen und dann müssten wir nie wieder die Hosen herunterlassen
-
29.08.11 12:07 #9
Ok, nein tut mir leid, ich habe nur gedacht, dass du die Erkennung der Versionsnummer aus dem FileWriter raus holst.

Stand grad ein bischen auf dem Schlauch.Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Macht ja nichts
Passiert jedem Mal.
Trotzdem danke, dass du versucht hast, zu helfen und zu verstehen, was ich genau will
Sheldon Cooper:
Es ist nur das dreidimensionale Denken, das die Vorstellungskraft beschränkt. Könnte ich mir die Hosen über den Kopf ausziehen? Natürlich nicht! Mein Körper ist im Weg! Aber wenn wir nun Zugang hätten zu höheren Dimensionen, könnten wir sie einfach durch die vierte Dimension hindurch um unseren Körper herumschlingen und dann müssten wir nie wieder die Hosen herunterlassen
Ähnliche Themen
-
C++ 2dim string Array durchsuchen (mit String vergleichen) und Zeile ausgeben
Von LKS im Forum C/C++Antworten: 4Letzter Beitrag: 05.12.10, 23:07 -
String splitten
Von mafiamix im Forum .NET CaféAntworten: 6Letzter Beitrag: 28.08.08, 18:26 -
String splitten
Von steve77 im Forum Java GrundlagenAntworten: 1Letzter Beitrag: 20.06.08, 14:57 -
String -> InputStream und wenn sich der String ändert?
Von nFiniteFX im Forum JavaAntworten: 4Letzter Beitrag: 03.07.07, 14:19 -
String splitten
Von kevkev im Forum Linux & UnixAntworten: 4Letzter Beitrag: 23.08.05, 23:28





Zitieren

Login





