2 Stimmen

Benutzereingabe Frage

Mein Programm überprüft, ob ein Wort oder Ausdruck ein Palindrom ist (das gleiche rückwärts wie vorwärts liest, z.B. "Rennpferd"). Das Problem, das ich habe, ist, nachdem jemand "Rennpferd" eingegeben hat, muss es tatsächlich getestet werden. Im unten stehenden Code habe ich markiert, wo ich "Rennpferd" eingebe und ausführe, Java gibt die richtige Antwort zurück, also weiß ich, dass ich hier richtig bin. Aber was fehlt mir, wenn es darum geht, es in die Konsole einzugeben? Ich denke, mein Code ist in Ordnung, aber vielleicht fehlt mir etwas oder es ist an der falschen Stelle? Ich suche nicht wirklich nach einer neuen Antwort, es sei denn, mir fehlt etwas, aber wenn möglich könnte ein Profi mir dabei helfen, meinen Code an die richtige Stelle zu verschieben, weil ich feststecke!

import java.util.*; 

public class Palindrom { 

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

    System.out.println("Geben Sie ein Wort oder einen Ausdruck ein: "); **//Dies fragt den Benutzer nach Eingabe, überprüft jedoch nicht, ob es ein Palindrom ist**
    meinInput = in.nextLine(); 
    in.close(); 

    System.out.println("Sie haben eingegeben: " + meinInput); 
}   

{
    String s="Rennpferd"; **//Ich kann hier ein Wort eingeben und es funktioniert, aber ich brauche**
    int i;             **//Ich brauche es, dass es funktioniert, wenn ich nach der Eingabe frage** 
    int n=s.length(); 
    String str="";  

    for(i=n-1;i>=0;i--)  
        str=str+s.charAt(i);  

    if(str.equals(s))  
        System.out.println(s+ " ist ein Palindrom");  

    else  System.out.println(s+ " ist kein Palindrom"); }

}

Ich bin neu in der Programmierung, also hoffe ich, dass das, was ich habe, in Ordnung ist. Ich weiß, dass der Palindrom-Test funktioniert, ich brauche nur Hilfe, um es durchzuführen, wenn ich es in die Konsole eingebe. Danke

1voto

Anthony Forloney Punkte 87227

Alles sieht gut aus, jedoch zeigt Ihre for-Schleife immer noch, dass Sie überprüfen, ob s ein Palindrom ist, nicht myInput.

Alles, was Sie jetzt tun müssen, ist jedes Vorkommen von s durch myInput zu ersetzen und dann zu überprüfen, ob Ihr Programm korrekt funktioniert.

Zur Information, Ihr Programm wird den Ausdruck "Madam Im Adam" nicht als Palindrom erkennen.

Da dies Hausaufgaben sind, ist ein möglicher Ansatz, um Ausdrücke zu erkennen (ohne Ihren Code zu ändern), Leerzeichen zu entfernen (Sie könnten String#replaceAll verwenden) in Ihrem String und dann den Palindrom-Check durchzuführen.

1voto

ring bearer Punkte 19605

Zunächst einmal wird der von Ihnen bereitgestellte Code nicht kompiliert; davon einmal abgesehen. Es sieht so aus, als ob Sie lernen möchten, wie man Benutzereingaben liest

Hier ist, was Sie in einfachen Worten tun müssen:

import java.util.Scanner;
...
...

Scanner in = new Scanner(System.in);

// Liest eine einzelne Zeile von der Konsole ein
// und speichert sie in der Variablen "s"
String s = in.nextLine();
in.close();

Fahren Sie dann mit Ihrem Code fort, um "s" auf Palindrome zu überprüfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X