Unten ist der Code, den ich geschrieben habe, damit ein Benutzer ein paar verschiedene Strings eingibt, prüft, ob jeder ein Palindrom ist und nur das Palindrom zurückgibt. Momentan werden alle eingegebenen Zeichenfolgen zurückgegeben. Es scheint, dass die IF-Anweisung, wenn nicht korrekt funktioniert. Irgendwelche Vorschläge, wie die richtigen Strings zurückgegeben werden können?Warum gibt dies nicht nur die Zeichenfolge zurück, wenn es ein Palindrom ist?
import java.util.Scanner;
public class hh {
static void checkPalin() {
// creates a scanner
Scanner input = new Scanner(System.in);
int i = 0;
String userInput = "";
// asks the user for the number of strings
System.out.print("Enter the number of strings: ");
StringBuilder sentence = new StringBuilder(userInput);
StringBuilder palindrome = new StringBuilder();
// stores the number of strings user will enters
int stringNumber = input.nextInt();
// prompts the user to enter in their sentences
System.out.println("Enter the strings:");
// this loop will go until the number of strings entered are entered
while(i <= stringNumber){
userInput = input.nextLine();
if(sentence.reverse().equals(sentence)){
palindrome.insert(0, " " + userInput);
}
i ++;
}
// if(sentence == sentence.reverse()){
System.out.println("The palindromes are: " + palindrome);
}
public static void main(String[] args) {
checkPalin();
}
}
Sie müssen String Satz = new Stringbuilder (userinput) bewegen; in der Schleife. Satz ist die ganze Zeit leer – Turo