Ich versuche, Benutzereingaben zu nehmen und zu ändern, damit ich die Zeichenfolge ohne irgendwelche Vokale drucke. Ich konnte das mit folgendem Code erfolgreich machen.Drucken der Benutzeroberfläche ohne Vokale Verwenden von Schleifen Ohne replaceAll(); in Java
Scanner in = new Scanner(System.in);
System.out.println("Enter a word: ");
String word = in.next();
String newString = word.replaceAll("[aeiouAEIOU]","1");
System.out.printf("%s", newString);
aber ich versuche, den gleichen Effekt zu erhalten, indem eine Schleife ohne das obige Verfahren verwendet wird, replaceAll(). Ich habe es ein anderes Mal versucht, aber in der Logik durcheinander gebracht und neu gestartet. Mein letzter Versuch ist unten und ich kann nicht verstehen, warum es nicht richtig läuft. Ich werde eine Zeichenfolge eingeben und ohne Fehlermeldung wird nichts zurück gedruckt. Das einzige Mal, dass ich es an die Arbeit ist, wenn ich es einzelne Zeichen geben in der Zeichenfolge finden so etwas wie
if(letter.contains("a"))
Verwendung Wenn die Bedingung wahr gefunden wird, wird es eine Zeichenfolge eines der Druck zurück, jedoch tut dies nicht arbeiten für jede Kombination von Zeichen, nur einzelne. Mein vollständiger Code ist unten.
import java.util.Scanner;
public class practice
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Enter a word: ");
String word = in.next();
int i = 0;
while (i < word.length()){
String letter = word.substring(i, (i+1));
if(letter.contains("[bcdfghjklmnpqrstvwxyz]")){
System.out.printf("%s",letter);
}
i++;
}
}
}
bin ich einfach versucht, einen Weg zu finden, um dieses Programm zu beenden nur conditionals, Schleifen, UI, und nur die Methoden length(),() enthält oder indexOf(), charAt() und substring (x, y). Vielen Dank im Voraus für jede Hilfe Ich hoffe, ich habe genug Informationen zur Verfügung gestellt. Hier
einige Beispiel-Ausgabe:
Enter a word:
Jordan
Nachdem ich das Wort das Programm eingegeben stoppt.
Der String ' "b"' (zum Beispiel) kann nicht die Zeichenfolge ' "bcdfghjklmnpqrstvwxyz"' . Es ist viel zu kurz. – ajb
Sorry, ich habe die [] rund um die Buchstaben, die ich gesucht habe, bearbeitet und hinzugefügt. Leider immer noch der gleiche Fehler, keine Ausgabe bekommen. Ich habe eine Beispielausgabe in die Frage gestellt, um hoffentlich ein bisschen mehr zu verdeutlichen, danke. –
'contains' verwendet keine regulären Ausdrücke, und die Verwendung von' [] 'erzeugt eine Regex. Nichtsdestotrotz können Sie * das Problem mit 'contains()' lösen, und ich dachte, Sie wären auf dem richtigen Weg, haben aber nur einen kleinen Fehler gemacht. Sie können den Code, den Sie ursprünglich hatten, einfach ändern (ohne '[]'). Denken Sie ein wenig darüber nach. – ajb