Hallo liebes Forum,
ich brauche Hilfe bei der Erweiterung/Umschreibung einer Java-Methode, die einen Spintax String (z.B.: Hallo ich {heiße|bin} {Hans|Klaus}!) zufällig kombiniert zu z.B. "Hallo ich heiße Hans!" oder zu "Hallo ich bin Hans!" usw. Ich möchte sie so verändern, dass sie alle möglichen Kombinationen in einem String-Array zurückgibt. Die while-Schleiße läuft den Spintax-Text so lange durch bis es keine Spintax Anweisungen mehr gibt. Dabei werden alle Spintax-Klammern der Reihe nach abgearbeitet. Zusätzlich müsste man den Zufallsgenerator ersetzten mit einem Algorithmus, der alle Kombinationsmöglichkeiten wiedergibt. Mir ist es leider nicht gelungen dies zu erreichen, da ich noch ein Anfänger bin. Ich wäre über jede Hilfe dankbar!
ich brauche Hilfe bei der Erweiterung/Umschreibung einer Java-Methode, die einen Spintax String (z.B.: Hallo ich {heiße|bin} {Hans|Klaus}!) zufällig kombiniert zu z.B. "Hallo ich heiße Hans!" oder zu "Hallo ich bin Hans!" usw. Ich möchte sie so verändern, dass sie alle möglichen Kombinationen in einem String-Array zurückgibt. Die while-Schleiße läuft den Spintax-Text so lange durch bis es keine Spintax Anweisungen mehr gibt. Dabei werden alle Spintax-Klammern der Reihe nach abgearbeitet. Zusätzlich müsste man den Zufallsgenerator ersetzten mit einem Algorithmus, der alle Kombinationsmöglichkeiten wiedergibt. Mir ist es leider nicht gelungen dies zu erreichen, da ich noch ein Anfänger bin. Ich wäre über jede Hilfe dankbar!
Java:
static String Spintax(int number, String str)
{
Random rnd = new Random(number);
String pat = "\\{[^{}]*\\}";
Pattern ma;
ma = Pattern.compile(pat);
Matcher mat = ma.matcher(str);
while(mat.find())
{
String segono = str.substring(mat.start() + 1,mat.end() - 1);
String[] choices = segono.split("\\|",-1);
str = str.substring(0, mat.start()) + choies[rnd.nextInt(choices.length).toString() + str.substring(mat.start()+mat.group().length());
mat = ma.matcher(str);
}
return str;
}
Zuletzt bearbeitet: