T
Thomers
Gast
Tagchen!
Ich arbeite gerade an einem Kodierungsprogramm, Fano und Huffmann, an sich nicht weiter wild.
Nun bin ich an der stelle, dass den Originaltext mit dem gnerierten Kode ersetzen will, was ich mittels String.replaceAl(..) vorhatte (da ich auch mit Bi, Tri- bis hin zu Septogrammen arbeite, also nicht jedes Zeichen einzeln durchlaufbar und ersetzbar, deswegen replaceAll ..).
Mein Problem nun: da in dem Text auch Zeichen wie *, ( oder sonstige Zeichen, die String.replaceAll als Nutzzeichen vorgesehen hat vorkommen und ich diese nicht mitels \\ valide machen kann, wirft mir der kompiler halt immer mal fehlermeldungen aus ... :
Nun meine frage, kann man irgendwie rausfinden, ob sich ein invalider Quantifier in einem String behandelt, ohne jetzt z.B. jedes Zeichen durchzugehen und mittels replace und einem abfangen einer Exception rauszufinden, dass es eines ist?
hier mal qt:
in code ist das kodierte alphabet, in ((ArrayList<Entry<String,Double>>) list.get(1)) nur das Alphabet für die Monogramme und deren Auftrittswahrscheinlichkeiten, in codeTxt zuanfangs der originaltext, der dann der reihe nach ersetzt wird
jemand weniger aufwändlige lsg?
mfg, Thomers
Ich arbeite gerade an einem Kodierungsprogramm, Fano und Huffmann, an sich nicht weiter wild.
Nun bin ich an der stelle, dass den Originaltext mit dem gnerierten Kode ersetzen will, was ich mittels String.replaceAl(..) vorhatte (da ich auch mit Bi, Tri- bis hin zu Septogrammen arbeite, also nicht jedes Zeichen einzeln durchlaufbar und ersetzbar, deswegen replaceAll ..).
Mein Problem nun: da in dem Text auch Zeichen wie *, ( oder sonstige Zeichen, die String.replaceAll als Nutzzeichen vorgesehen hat vorkommen und ich diese nicht mitels \\ valide machen kann, wirft mir der kompiler halt immer mal fehlermeldungen aus ... :
Dangling meta character '*' near index 0
Unclosed group near index 1
etc
Nun meine frage, kann man irgendwie rausfinden, ob sich ein invalider Quantifier in einem String behandelt, ohne jetzt z.B. jedes Zeichen durchzugehen und mittels replace und einem abfangen einer Exception rauszufinden, dass es eines ist?
hier mal qt:
Code:
for(int i=0;i<code.length;i++) {
key = ((ArrayList<Entry<String,Double>>) list.get(1)).get(i).getKey();
codeTxt = codeTxt.replaceAll(key ,code[i]);
}
in code ist das kodierte alphabet, in ((ArrayList<Entry<String,Double>>) list.get(1)) nur das Alphabet für die Monogramme und deren Auftrittswahrscheinlichkeiten, in codeTxt zuanfangs der originaltext, der dann der reihe nach ersetzt wird
jemand weniger aufwändlige lsg?
mfg, Thomers