Auf Thema antworten

Ich hätte jz auf die schnelle soetwas vorgeschlagen:

[code=Java]

public static void main(String[] args)

{

    String abcdef="text [[befehl1]] text text [[befehl2]]";

   

    Matcher matcher=Pattern.compile("(.*?)\\[\\[(.*?)\\]\\]").matcher(abcdef);

   

    while(matcher.find()) {

        String rslt="";

        String data=matcher.group(2).trim().toLowerCase();

        switch(data) {  // <-- Strings in Switch setzt Java 7 vorraus.

            case "befehl1":

                rslt+=System.currentTimeMillis();

                break;

            case "befehl2":

                rslt+="Hello World!";

                break;

        }

        System.out.print(matcher.group(1) + rslt);

    }

}[/code]


ist deinem sehr ähnlich. Nur was ich mache:

Ich arbeite mit Gruppen im Regex. Somit lasse ich den originalString unangetastet und setze alles wieder neu zusammen. Das Auswerten der Befehle in den klammern kann dann ieine Methode übernehmen, die dann das Ergebnis zurückgibt.



Oben