Stringvergleich funktioniert nicht

Disney

Mitglied
Hallo. Ich habe mir ein Text-Adventure-Code beschafft und schau mir den schon seit ein paar Tagen an und versuche so manche Sachen nachzuprogrammieren. Ich versteh hier etwas nicht, könnt ihr mir sagen was das Problem ist?
Code sollte verständlich sein. Ist eine Input-Methode, mit der man ein Wort eingibt, wenn man ein anderes Wort als Affe eingibt kommt ein Fehler in Form von einem Print-Befehl. Wenn man jedoch Affe eingibt, dann sollte halt ein Print kommen mit einer Erfolgsmeldung.
Aus irgendeinem Grund will der die eingabe nach "Affe" in der boolean-methode ganz unten nicht abchecken. Im Beispiel-Code fragt der dort aber auch Strings ab und es funktioniert auch. :(
Habe als Test auch ein "System.quit(0)" ganz unten reingepackt, aber das Programm beendet sich nicht mal.

Hier der Code von dem ich lerne: https://gist.github.com/okthisisgettingridic/a173b3a9dd0a446aa6ec

Java:
import java.util.Scanner;

public class BooleanTest{
	public static void main(String[] args){
		input();	
	}
	
	public static String input(){
	
	Scanner sc = new Scanner(System.in);
	String eingabe = sc.nextLine();
		
		while (eingabeIstSinnlos(eingabe)){
	         eingabe = sc.nextLine();		
		}
		
		if (esGibtEinKeywort(eingabe)){
			System.out.println("Erfolgreich!");
		}
		
		return eingabe;
	}
	
	public static boolean eingabeIstSinnlos(String eingabe){
	
		if (eingabe.length() > 0 && esGibtEinKeywort(eingabe)){
			
		} else {
		System.out.println("Fehler!");
		}
		
		return true;
	}
	
	public static boolean esGibtEinKeywort(String eingabe){
	
		if (eingabe == "Affe"){
			//System.exit(0);
			return true;
		}
		
		return false;		
	}		
}
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Strings vergleicht man mit equals:
Java:
public static boolean isKeyWord(String input) {
  return input.equals("Affe");
}
 

arilou

Bekanntes Mitglied
und eingabeIstSinnlos gibt immer true zurück...

Strings vergleicht man mit equals:
Java:
public static boolean isKeyWord(String input) {
  return input.equals("Affe");
}

Aber besser:
Java:
return "Affe".equals(input);
Das liefert 'false', wenn input=null ist, anstelle einer NullPointerException...

Joose: habe deine zwei Beiträge zusammengefasst, bitte beachte das du deinen Beitrag noch eine Zeit lang editieren kannst nachdem du ihn gepostet hast
 
Zuletzt bearbeitet von einem Moderator:

njans

Top Contributor
Das liefert 'false', wenn input=null ist, anstelle einer NullPointerException...

Und genau das will man nicht haben.
Wenn Eingabefehler auftreten, müssen diese behandelt werden. Wenn du das in einem größeren Programm machst, kriegst du irgendwo Fehler, weißt aber nicht woher die kommen, weil du eben keine NPE bekommst.
 

arilou

Bekanntes Mitglied
Das ist eine Frage des Standpunkts, und was genau das Programm machen soll.
Egal welchen Weg man geht - es muss dann eben dokumentiert sein.
Und der Verwender muss die Doku eben auch lesen...

Eine Methode .isKeyWord ist ähnlich einer .equals, und die soll für .equals(null) 'false' zurückliefern, und nicht Fehler schmeißen.
 

njans

Top Contributor
Eine Methode .isKeyWord ist ähnlich einer .equals, und die soll für .equals(null) 'false' zurückliefern, und nicht Fehler schmeißen.

Das sehe ich nicht so. equals beschreibt die Beziehung zwischen diesem Objekt und einem beliebigen übergebenen. Und wenn null übergeben wird, dann ist das wohl ein valider Parameter.

Bei isKeyWord, erwarte ich ein Wort. null ist kein Wort und demnach auch kein valider Parameter. Wenn mir null übergeben wird, würde ich das für einen Fehler im Programm halten und dementsprechend eine NPE werfen. Zumal dieser Fall niemals eintreten sollte, würde man wohl vorher schon auf null Prüfen, da man dann diese Methode eh nicht mehr aufrufen müsste.
 

lokithejoker

Neues Mitglied
jo. Also was ich so beim durchlesen bemerkt habe:
1. Zeile 37 Sollte "eingabe.equals("Affe")" stehen.
2. Zeile 26 reicht "esGibtEinKeywort(eingabe)"
- Wenn die eingabe nicht > 0 ist kann dort auch nicht "Affe" stehen
3. Zeile 27 sollte "return false;"
- Wenn die Bedingung der vorherigen if-Anweisung erfüllt ist, ist eingabeIstSinnlos ja falsch
4. Zeile 8 public static void input()
- Rückgabetyp der Methode ist String.
Für deinen Code hier unnötig da du ihn nicht verwendest wie z.B. mit System.out.println(input());
5. Zeile 17 if-Anweisung unnötig,
- weil die while-schleife nicht beendet wird, wenn die eingabe nicht Affe ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Stringvergleich funktioniert nicht Java Basics - Anfänger-Themen 8
S Stringvergleich funktioniert nicht ? Java Basics - Anfänger-Themen 12
W Stringvergleich Java Basics - Anfänger-Themen 7
C Probleme bei einem Stringvergleich - Attribut "value" unterscheidet sich Java Basics - Anfänger-Themen 9
W Stringvergleich mit equals Java Basics - Anfänger-Themen 13
D Probleme mit Stringvergleich Java Basics - Anfänger-Themen 7
D Stringvergleich Java Basics - Anfänger-Themen 7
B Datentypen Stringvergleich mit == Java Basics - Anfänger-Themen 18
F Stringvergleich mit CharAt Java Basics - Anfänger-Themen 9
J Stringvergleich Java Basics - Anfänger-Themen 4
E Probleme bei Stringvergleich, leer String = gefülltem String Java Basics - Anfänger-Themen 2
N Stringvergleich Java Basics - Anfänger-Themen 7
G Stringvergleich Java Basics - Anfänger-Themen 2
G Problem mit .substring() und Stringvergleich Java Basics - Anfänger-Themen 3
G Was is falsch mit meinem program? (stringvergleich-problem) Java Basics - Anfänger-Themen 8
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
M Erste Schritte Importieren funktioniert nicht Java Basics - Anfänger-Themen 7
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben