Ich habe Probleme beim Ausdrucken aller Vokalkombinationen eines bestimmten Eingangs. Meine Eingabe ist "ETWAS" und ich möchte alle Vokalkombinationen wie sxmxthxng ausdrucken, wobei x für aeiou Vokale steht. Ich glaube, mein Problem ist, dass ich einen Vokal finde, ihn mit allen anderen Vokalen ändere und weitermache. Ich muss den Rest des Wortes fortsetzen und zusätzliche Vokale finden und diese ändern, bevor ich fortfahre.Wie kann ich alle Vokalkombinationen eines Strings erstellen und jede Kombination einer ArrayList hinzufügen?
Andere Refs
vowelList is an ArrayList containing all lower case vowels.
-Code
private static void createVowelCombos(String word) {
Set<String> rmRepeats = new HashSet<>();
StringBuilder sbAddWord = new StringBuilder(word);
String[] splitWord = word.split("");
for (int i = 0; i < word.length(); i++) {
// System.out.println("real word: " + splitWord[i]);
if (splitWord[i].matches(".*[aeiou]")) {
// System.out.println("Split: " + splitWord[i]);
for (int j = 0; j < 5; j++) {
sbAddWord.setCharAt(i, vowelList.get(j).charAt(0));
System.out.println(sbAddWord.toString());
}
}
}
}
Beispielausgabe mit dem Eingang "ETWAS"
samething
semething
simething
something
sumething
sumathing
sumething
sumithing
sumothing
sumuthing
sumuthang
sumutheng
sumuthing
sumuthong
sumuthung
Aus irgendeinem Grund ist es mir alle Kombinationen mit 'u' ist aber geben, nicht die anderen Vokale. Ich würde gerne alle Ergebnisse auch für die anderen Vokale erhalten.
Zuerst sollten Sie versuchen, eine Funktion zu erstellen, die alle Permutationen einer Zeichenfolge druckt. Also gibt abc abc, acb, bca, bac, cab, cba aus. Es ist eine ziemlich harte Funktion zu erstellen, wenn Sie noch nie eine rekursive Methode erstellt haben. –
Ja, ich habe das - das Problem damit ist, ich will keine Liste 12! lange. Ich versuche nur alle Vokalkombinationen zu erstellen. Was ich dachte, ich könnte mit einer verschachtelten Schleife machen. – Yawn
Verschachtelte Schleifen sind nützlich, wenn Sie wissen, wie viele Schleifen verschachtelt werden sollen. In dieser Anwendung haben Sie jedoch keine Ahnung, wie viele Vokale im Wort vorkommen. Verwenden Sie dazu eine rekursive Methode. – coolioasjulio