Hey,
btw: bin neu hier
Also folgendes:
Ich übergebe beim Starten meines Programmes x-beliebige Chars als Argumente/Parameter.
z.B: "java getwords n s a e"
Mein Programm soll nun alle möglichen Wörter auflisten, welche mit diesen Buchstaben möglich sind.
Nunja, mein Code sieht bisher so aus:
Nunja, das klappt soweit auch.
Nun habe ich 2 Probleme, wo ich einfach nicht weiter komme.
Wie man dem Code entnehmen kann, habe ich einfach 4 Schleifen erstellt und dadurch die "Wörter" erstellt.
Nunja, aber wie ich oben beschrieben habe, soll das alles dynamisch sein, also es können auch mehr als 4 Chars sein.
Wie ich das mit den Argumenten mache, habe ich mir schon überlegt.
Iwie sowas á la:
Allerdings, weiß ich nicht wie ich das mit der Function "createarray" hinbekommen soll.
Denn ich weiß ja vorher nicht wie groß das Chararray ist. :\
Ich hab gehört dass man es "rekursiv" lösen kann. (Versteh ich aber nicht)
Nächstes Problem ist, ich möchte dass jeder Buchstabe nur einmal vorkommt!
Also bis jetzt kommen bei den Argumenten "n s a e", auch Einträge wie "nnnn" usw.
Auch verständlich, denn so habe ich es ja auch mit meinen Schleifen vorgegeben.
Allerdings wenn man zB "d o o f" übergibt, darf ruhig "food" o.Ä. rauskommen, denn ich habe "o" ja zweimal übergeben.
Nunja, ich hoffe ihr habt mein Anliegen verstanden und könnt mir auf die Sprünge für eine Lösung helfen.
Danke im Vorraus
lg Chris
btw: bin neu hier
Also folgendes:
Ich übergebe beim Starten meines Programmes x-beliebige Chars als Argumente/Parameter.
z.B: "java getwords n s a e"
Mein Programm soll nun alle möglichen Wörter auflisten, welche mit diesen Buchstaben möglich sind.
Nunja, mein Code sieht bisher so aus:
Code:
import java.util.ArrayList;
import java.lang.String;
public class getwords
{
public static void main(String[] args) throws InterruptedException
{
String[] letters = {args[0],args[1],args[2],args[3]};
String[] wa = createarray(letters);
for (int i = 0; i < wa.length; i ++)
{
System.out.println(wa[i]);
}
}
static String[] createarray(String[] letters)
{
ArrayList temp = new ArrayList();
for (int i = 0; i < letters.length; i ++)
{
for (int o = 0; o < letters.length; o ++)
{
for (int p = 0; p < letters.length; p ++)
{
for (int u = 0; u < letters.length; u ++)
{
temp.add(letters[i] + letters[o] + letters[p] + letters[u]);
}
}
}
}
int t = temp.size();
String[] re = new String[t];
for (int f = 0; f < t; f ++)
{
re[f] = (String) temp.get(f);
}
return re;
}
}
Nun habe ich 2 Probleme, wo ich einfach nicht weiter komme.
Wie man dem Code entnehmen kann, habe ich einfach 4 Schleifen erstellt und dadurch die "Wörter" erstellt.
Nunja, aber wie ich oben beschrieben habe, soll das alles dynamisch sein, also es können auch mehr als 4 Chars sein.
Wie ich das mit den Argumenten mache, habe ich mir schon überlegt.
Iwie sowas á la:
Code:
Char[] mychars = arg[0].toCharArray();
Denn ich weiß ja vorher nicht wie groß das Chararray ist. :\
Ich hab gehört dass man es "rekursiv" lösen kann. (Versteh ich aber nicht)
Nächstes Problem ist, ich möchte dass jeder Buchstabe nur einmal vorkommt!
Also bis jetzt kommen bei den Argumenten "n s a e", auch Einträge wie "nnnn" usw.
Auch verständlich, denn so habe ich es ja auch mit meinen Schleifen vorgegeben.
Allerdings wenn man zB "d o o f" übergibt, darf ruhig "food" o.Ä. rauskommen, denn ich habe "o" ja zweimal übergeben.
Nunja, ich hoffe ihr habt mein Anliegen verstanden und könnt mir auf die Sprünge für eine Lösung helfen.
Danke im Vorraus
lg Chris