Ich schrieb eine rekursive Methode, die alle möglichen Zeichenkombinationen aus den Zeichen in einer Zeichenfolge erhält. Ich habe auch eine Methode für den Zugriff und eine Liste der Combos zurück:Rekursive Methode funktioniert in Java mit Konsole, aber nicht mit Android
public static void uns(String word, StringBuilder s, List combos)
{
for(char c: word.toCharArray())
{
s.append(c);
if(word.length() != 1)
{
uns(removeChar(word, c),s,combos);
}
else
{
combos.add(s.toString());
}
s.deleteCharAt(s.toString().length()-1);
}
}
public static List getCombinations(String word)
{
List<String> combinations = new ArrayList<String>();
uns(word,new StringBuilder(),combinations);
return combinations;
}
public static String removeChar(String s, char c)
{
int index = s.indexOf(c);
return s.substring(0,index)+s.substring(index+1);
}
Wenn es in Java zu testen, ist es ohne Fehler lief. Aus irgendeinem Grund, wenn ich es in Android verwende, wird die Liste mit der richtigen Anzahl von Elementen gefüllt, aber jedes Element ist das gleiche. Zum Beispiel gibt es für das Wort "hier" eine Liste zurück, die mit "Eerh" gefüllt ist.
Was ist die Definition von 'removeChar()'? – Eric
@Eric Sorry, zurück bearbeitet. – Wilson