In Java Programmierung; Ich habe ein Array von vielen Strings, die Sätze sind (zB String[] compString = "This is a sentence"
), natürlich inklusive Leerzeichen. Ich möchte, dass der Benutzer denselben Satz in die Konsole eingibt, und ich möchte, dass das Programm beide Zeichenfolgen vergleicht und dem Benutzer mitteilt, ob sie den Satz richtig wiederholt haben oder nicht. Das heißt, ich möchte, dass der Benutzer "Dies ist ein Satz" eingibt und das Programm wird userString
mit compString
hier vergleichen und "Korrekt" ausgeben. Aufgrund des Leerraums in der Zeichenfolge des Benutzers wird jedoch "Falsch" zurückgegeben, da nur "Dies" mit der Zeichenfolge "Dies ist ein Satz" des Computers verglichen wird. Ich versuchte es mit dieser Festsetzung:Wie gehe ich mit Leerzeichen um, wenn ich Konsolenstrings mit anderen Strings vergleiche?
if(userString.replace(" ","").equalsIgnoreCase(compString[0].replace(" ",""))){
Aber das hilft nicht, und noch vergleiche nur „Dieser“ bis „Das ist ein Satz“. Habe ich den Code richtig eingegeben, um alle Leerzeichen zu entfernen? Oder gibt es eine andere Möglichkeit, dies zu tun?
Bitte zeigen Sie den Code, der den Eingang liest - verwenden Sie einen 'Scanner'? Hast du 'nextLine()' benutzt? Haben Sie den abschließenden Zeilenumbruch entfernt? –
String [] compString = "Dies ist ein Satz"; // Sie können einem Array von Strings keinen String zuweisen ... – Burkhard
Ich habe "nextLine" ausprobiert und es eliminiert die Konsole komplett und gibt nur "Wrong" aus. Entschuldigung für die Verwirrung; Die Beispiele, die ich oben gegeben habe, werden nicht mit dem tatsächlichen Code übereinstimmen (ich habe versucht, es einfach zu halten), aber ich werde mehr Code zum OP hinzufügen, in einer Sekunde hier. – Ray25Lee