Problem mit if-Abfrage von Strings
lima-city → Forum → Programmiersprachen → Java
bestzeit
code
fehler
frage
kenntnis
kleiner operator
lernen
plazierung
private string
problem
schnelle antwort
sinn
spieler
string
system
teufel
trainieren
typ
verbesserung
zahl
-
Hallo zusammen,
nach meinem neulichen Patzer bin ich auf Java aufmerksam geworden und bin gerade dabei es zu lernen. Ich habe mir auch schon ein erstes Testprojekt ausgedacht, wo ich meine neuen Kenntnisse super prüfen und trainieren kann. Leider gab es einige Fehler dabei^^:
hier ist mal der Grundcode, zum Problem komme ich dann im Anschluss.
class Player { private String name; static void Spielername() { Player p = new Player(); p.name = "Spieler1"; Player s = new Player (); s.name = "Spieler2"; } private String S1; private String S2; static void Bestzeit() { Player Bestzeit = new Player(); Bestzeit.S1 = "55"; Bestzeit.S2 = "58"; } private String rang1; private String rang2; static void Platzierung() { Player Platzierung1 = new Player(); Platzierung1.rang1 = "Nr. 1"; Platzierung1.rang2 = "Nr. 2"; } public static void main ( String[] args) { Spielername(); Bestzeit(); Platzierung(); } }
Nun möchte ich aber bei Bestzeit() prüfen, wer von den beiden Spielern die bessere Zeit besitzt. Wenn ich dies hätte würde ich noch gerne prüfen wer nun besser war und bei Platzierung die Ränge ausgeben. Ich poste mal noch meinen Code den ich eingefügt hätte, der aber leider nicht funktioniert hat :(
private String S1; private String S2; static void Bestzeit() { Player Bestzeit = new Player(); Bestzeit.S1 = "55"; Bestzeit.S2 = "58"; if (Bestzeit.S1 < Bestzeit.S2) { System.out.println("Spieler1 ist der Bessere"); } else { System.out.println ("Spieler1 ist nicht erster"); } }
Dann bei der Prüfung der Ränge:
static void Platzierung() { Player Platzierung1 = new Player(); Platzierung1.rang1 = "Nr. 1"; Platzierung1.rang2 = "Nr. 2"; if (Bestzeit1 < Bestzeit2) { System.out.printf("%s", Platzierung.rang1); } }
Vielen Dank !
Auch andere Fehler oder Verbesserungen bitte posten ;) Kritik deswegen umbedingt erwünscht :)
Grüße
TF -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ok, die erste Frage wäre wohl, warum (zum Teufel) du für eine Variable, die nur eine Zahl speichert einen String benutzt?
Wenn du einfach eine Ganzzahl(also int) nimmst, kannst du auch mit dem kleiner Operator(<) prüfen, genauso machst du es bei dem Platz, du nimmst einfach nicht "Nr.2" sondern nur 2 und zwar auch als int. -
Wenn du die größe der zwei Zahlen vergleichen willst solltest du sie erst in einer Variable vom typ integer abspeichern.
Die einfachste möglichkeit wäre du initialisierst einfach einen integer statt einen String:
private int S1; private int S2;
Wenn du die Variablen tatsächlich als String lassen möchtest (was zumindest in den Codes, die du gepostet hast keinen Sinn machen würde) musst du die Strings zur überprüfung in Variablen vom Typ integer konvertieren:
if (Integer.parseInt(Bestzeit.S1) < Integer.parseInt(Bestzeit.S2))
-
Hallo,
vielen Dank für die schnelle Antwort :)
Oh ja jetzt weiß ich auch, warum es bei mir auch einen Fehler immer angezeigt hat . Habe nämlich immer den Attributswert bei int in Anführungszeichen gesetzt
Vielen Dank euch zwei !
Grüße
TF
PS: @mods: Bitte Thema schließen Danke!
Beitrag zuletzt geändert: 21.1.2010 16:01:06 von teamfake -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage