falscher if-Zweig

12/02/2016 11:04 exceble#1
Nabend,

ich habe eine kleine Methode overwriteField() geschrieben, welche einfach ein Feld ersetzen soll, wenn dieses noch frei ist


Abgesehen davon, dass es eine Exception geben würde, wenn die Eingabe keine Zahl ist, habe ich ein ganz anderes Problem. Und zwar, dass fields[field] und eingabe zwar gleich sind, das Programm aber dennoch in den else-Zweig springt und xyz ausgibt.


Das kann ich mir irgendwie nicht erklären, habe ich etwas ganz simples übersehen? Vielen Dank für die Hilfe

Cheers
12/02/2016 11:09 Syc#2
So auf Anhieb würde ich sagen, dass eingabe noch immer ein String ist und du versuchst einen String mit einem Int zu vergleichen. Du müsstest eingabe auch noch als int parsen. Wie das geht weißt du ja.
12/02/2016 11:12 exceble#3
Quote:
Originally Posted by Syc View Post
So auf Anhieb würde ich sagen, dass eingabe noch immer ein String ist und du versuchst einen String mit einem Int zu vergleichen. Du müsstest eingabe auch noch als int parsen. Wie das geht weißt du ja.
Oh ups, ich hatte vergessen zu erwähnen, dass fields[] ein String-Array ist, somit vergleiche ich einen String mit einem String, aber vielen Dank für die rasche Antwort!
12/02/2016 11:18 Syc#4
Oh da hast du Recht. In meinem Fall würde der Compiler eh ne exception werfen.
Habe schon länger nicht mit Java gearbeitet. Aber wenn ich mich recht erinnere muss/soll man für Stringvergleiche .equals() verwenden, damit der tatächliche Wert geprüft wird. Vielleicht liegt da das problem.
12/02/2016 11:42 exceble#5
Quote:
Originally Posted by Syc View Post
Oh da hast du Recht. In meinem Fall würde der Compiler eh ne exception werfen.
Habe schon länger nicht mit Java gearbeitet. Aber wenn ich mich recht erinnere muss/soll man für Stringvergleiche .equals() verwenden, damit der tatächliche Wert geprüft wird. Vielleicht liegt da das problem.
Tatsächlich, ich nämlich auch nicht :rolleyes: Vielen dank!
12/02/2016 12:27 Mikesch01#6
Nur als nachträglichen Hinweis:
[Only registered and activated users can see links. Click Here To Register...]
12/08/2016 12:27 Menan#7
Die beste Methode Strings in java zu Vergleichen ist die StringUtils Bibliothek von Apache.

Dann kannst du Strings einfach per:


Code:
boolean eq = StringUtils.equals(string1,string2);
vergleichen. Und hast gleichzeitig auch noch den Nullcheck dabei, Sprich wenn einer der beiden Strings Null wäre, würde fals zurückgegeben werden und nicht dein Programm abstürzen.