Java-Code funktioniert nicht

Java:
import java.util.Scanner;

public class Test01 {
   public static void main(String[] args) {
     Scanner scanner = new Scanner(System.in);

     String frage = "";
     String wie = "Wie heißt du?";
     
     frage = scanner.next();
     
     if(wie.equals(frage)) {
       System.out.println("Mein Name lautet Edwin");
     } else {
       System.out.println("False");
     }
   }
}
 
Zuletzt bearbeitet von einem Moderator:
Code bitte immer Code-Tags posten, danke!
[code=java] ... dein code ... [/code]

Hast du auch eine Frage oder willst du uns nur deinen Code zeigen?
Funktioniert nicht ist keine Fehlerbeschreibung! Welche Fehlermeldungen bekommst du? Was sollte passieren? Was passiert stattdessen?
 
Moinsen,

mal so ins Blaue geraten: vermutlich wird eben nicht exakt "Wie heißt du?" eingegeben ...
Nur wenn als Frage exakt dies eingegeben wird (mit entsprechender Groß- und Kleinschreibung, kein zusätzlichen Blanks etc.) könnte die Ausgabe "Mein Name lautet Edwin" kommen ...

Irgendwie macht die Prüfung IMHO aber auch keinen Sinn 🙄
Was genau willst Du damit bezwecken ??

Gruß Klaus
 
1. ab sofort werde ich Tags benutzen
2.Es wird stets "False" (bzw. else-Block) ausgegeben. In Bezug darauf habe ich mich gefragt ob es eventuell an einem fehlerhaften if-Ausdruck liegt?
 
Wie Vfl_Freak schon gesagt hat. Deine Eingabe muss exakt mit dem Text in der Variable "wie" übereinstimmen!
Lass dir doch vor der if-Bedingung deine beiden Variablen "wie" und "frage" ausgeben und kontrolliere deine Eingabe.
 
tausch mal
Java:
frage = scanner.next();
durch
Java:
frage = scanner.nextLine();
aus.
 
Und abgesehen von Deinem Problem empfehle ich Dir die Verwendung von:

Java:
Objects.equals(wie, frage);

Das ist zusätzlich noch nullsafe.
 
Ich schätze, dass es an deinem "ß" scheitert. Wie @Joose schon sagte, gib dir den String vor der Abfrage mal aus und prüfe dies.

Gruß
JarJar
Daran liegt es in Windows XP - Windows 10 nicht. Eingabe ist immer korrekt, wenn man es mit der Scanner Klasse versucht. (Solange das Zeichen mit 16Bit darstellbar ist)
Die Ausgabe läuft bloß ständig schief. Da muss man erst die Codepage des System.out umstellen. (Sorgt jedoch dafür, dass es dann in Eclipse nicht mehr geht)

Ich bin mir wirklich 1000%ig sicher, dass es an dem scanner.read() liegt. scanner.read() ließt nämlich immer nur bis zum Leerzeichen. scanner.readLine() ließt bis zum Zeilenumbruch.
 
Daran liegt es in Windows XP - Windows 10 nicht. Eingabe ist immer korrekt, wenn man es mit der Scanner Klasse versucht.
Das stimmt so nicht. Bei mir ist es in Windows 7 immer falsch. Eingabeaufforderung, Eclipse, NetBeans. Wahrscheinlich könnte man es mit ein bisschen Gefummel zwar hinbiegen aber deutsche Umlaute sind immer des Teufels. Und es muss auf Jeden Fall nextLine() heissen.
 
Das stimmt so nicht. Bei mir ist es in Windows 7 immer falsch. Eingabeaufforderung, Eclipse, NetBeans. Wahrscheinlich könnte man es mit ein bisschen Gefummel zwar hinbiegen aber deutsche Umlaute sind immer des Teufels. Und es muss auf Jeden Fall nextLine() heissen.
@RalleYTN Bei mir im Netbeans scheitert es in der Konsole am ß unter Windows 10.
Und du meinst wahrscheinlich next() und nextLine().

PS: Das mit next() stimmt allerdings auch...

Gruß
JarJar
Hmmm.... bei hat es soweit immer funktioniert.
Konnte sogar Chinesische Zeichen verarbeiten.
 

Zurück
Oben