2 Stimmen

Benutzer Eingabefrage

Mein Programm überprüft, ob ein Wort oder ein Satz ein Palindrom ist (das gleiche rückwärts und vorwärts liest, z.B. "Rennrad"). Das Problem, das ich habe, ist nachdem jemand "Rennrad" eingegeben hat, es tatsächlich zu testen. Im unten stehenden Code habe ich markiert, wo wenn ich "Rennrad" eingebe und ausführe, Java die richtige Antwort zurückgibt, also weiß ich, dass ich da richtig bin. Aber was fehlt mir beim Eingeben in die Konsole. Ich denke mein Code ist in Ordnung, aber vielleicht fehlt mir etwas oder ist an der falschen Stelle? Suche nicht wirklich nach einer neuen Antwort, es sei denn, ich übersehe etwas, aber wenn möglich vielleicht ein Profi, der meinen Code in den richtigen Bereich verschiebt, denn ich stecke fest!

import java.util.*; 

public class Palindrom { 

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

    System.out.println("Geben Sie ein Wort oder einen Satz ein: ");  **//das fordert den Benutzer zur Eingabe auf, überprüft aber nicht, ob es ein Palindrom ist**
    myInput = in.nextLine(); 
    in.close(); 

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

{
    String s="Rennrad";  **//ich kann hier ein Wort eingeben und es funktioniert, aber ich brauche**
    int i;               **//ich benötige, 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 ihn durchzuführen, wenn ich ihn in die Konsole eingebe. Danke

1voto

Anthony Forloney Punkte 87227

Alles sieht gut aus, jedoch wird in Ihrer for-Schleife immer noch überprüft, ob s ein Palindrom ist, nicht myInput.

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

Zu beachten ist, dass Ihr Programm die Phrase "Madam Im Adam" nicht als Palindrom erkennen wird.

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

1voto

ring bearer Punkte 19605

Zunächst einmal wird der von Ihnen bereitgestellte Code nicht kompiliert; das einmal beiseite. Es sieht so aus, als ob Sie wissen möchten, "wie Benutzereingaben gelesen werden"

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

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

Scanner in = new Scanner(System.in);

// Liest eine einzelne Zeile aus der Konsole
// und speichert sie in der Variable namens "s"
String s= in.nextLine();
in.close();

Fahren Sie dann mit Ihrem Code fort, um "s" auf Palindrom 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