Prüfen, ob Char ein Quantifier ist

Status
Nicht offen für weitere Antworten.
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 ... :
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
 

Kim Stebel

Bekanntes Mitglied
"weniger aufwändlige lsg":
1) Seminar zum Thema "Wie stelle ich ein Problem verständlich dar" besuchen.
2) noch mal posten

leider kann ich auch keine Frage dazu stellen. man weiß einfach nicht wo vorne und hinten ist und eine menge informationen scheinen bestenfalls überflüssig.
 
M

maki

Gast
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 ... :
Die Klasse String bietet eine weitere Funktion zum ersetzen von Zeichenketten: replace

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#replace(java.lang.CharSequence,%20java.lang.CharSequence)

replace unterstützt keine regulären Ausdrücke, damit kannst du alle relevanten Zeichen maskieren.
 
T

Thomers

Gast
erstmal @maki: replace hilft mir hier leider nicht viel, da ich wie gesagt auch bigramme, trigramme, etc. mit ersetzen muss und die nunmal in strings stehen ... trotzdem danke

@Kim Stebel: sorry, sonst wir das imer verstanden, wenn ich so formuliere ..
na egal, hier mal ordentlicher, nur für monogramme:

ich habe einen Text.
der soll kodiert werden.
dafür wird das nutz-alphabet ermittelt und die auftrittswahrscheinlichkeiten jedes zeichens (bzw. zeichenkombi bei n-grammen).
nun wird mittels fano- und/oder huffman-methode das alphabet kodiert. dann habe ich sowas wie z.b.
Code:
a = 00
b = 01
c = 100
( = 101
ö = 110
* = 111
nach diesem schritt muss nun noch der originaltext mit den kodierten alphabet ersetzt werden.
das hatte ich mittels
Code:
String.replaceAll(zeichen,origText)
vor, wobei zeichen halt das aktuelle zeichen ist, in einer schleife, die das kodirte alphabet durchläuft un der reihe nach alles ersetzt.
(das das eigentlich blöd ist, da, wenn im original text eine "0" oder "1" steht, mit einer niedrigen auftrittswahrscheinlichkeit, und dass dann schon kodierter text nochmal koderit wird, is jez mal egal, darum kümmere ich mich später.)
meinaktuelles problem ist nun, dass wenn z.B gerade das '*' drann ist, String.replaceAll eine
Dangling meta character '*' near index 0
-Exception wirft und z.B. '(' eine
Unclosed group near index 1
-Exception ...

nur meine frage: kann ich einen String abfragen, ob sich in ihm ein Quantifier('(',')','*','+',...) befindet, der von String.replaceAll nicht korrekt ersetz werden kann, bzw, ob ein char ein solcher ist, oder muss ich das umständlich über einen Abfang einer exception machen, quasi:
Code:
try {
"dummy".replayAll(zeichen,"wasauchimmer"); }
catch(Exception e) {
 zeiche = "\\"+zeichen;
}
origtext = origtext.replaceAll(zeichen,code);
.. und das nun für jedes zeichen eins n-grammes (ausser letzte zeile)

und nun: gez einfacher?

mfg, Thomers
 
M

maki

Gast
erstmal @maki: replace hilft mir hier leider nicht viel, da ich wie gesagt auch bigramme, trigramme, etc. mit ersetzen muss und die nunmal in strings stehen ... trotzdem danke
replace arbeitet doch mit Strings...
 
G

Guest

Gast
oh, tatsache .. da hab ich mal wieder nur irgendwas mit char gelesen und gutt .. das peinlich :oops:

vielen dank, mal guggen obs so geht.

mfg, Thomers
 

madboy

Top Contributor
Wenn du wirklich replaceAll() verwenden willst/musst:
Code:
        String source = "blablubb*blubb*";
        String replace = "*";
        replace = java.util.regex.Pattern.quote("*");
        System.out.println(source.replaceAll(replace, "X"));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
OnDemand Prüfen ob Bild defekt ist Allgemeine Java-Themen 4
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
W Classpath Reflexion - Prüfen ob man auf ein Feld ändern kann Allgemeine Java-Themen 2
OnDemand Bild prüfen ob defekt Allgemeine Java-Themen 3
B Java Mail: Prüfen, ob Email hat ein Anhang oder nicht Allgemeine Java-Themen 2
Bluedaishi Prüfen ob Datei noch geöffnet ist Allgemeine Java-Themen 59
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
J Mit Lombok Integer Range prüfen Allgemeine Java-Themen 6
S Prüfen ob Textfile existiert Allgemeine Java-Themen 9
E Programm auf Installation prüfen Allgemeine Java-Themen 1
S Binärbaum prüfen Allgemeine Java-Themen 0
L String auf zahlenwert prüfen Allgemeine Java-Themen 13
W Datum prüfen + zweistellig Allgemeine Java-Themen 11
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
M .jar nach Datei prüfen Allgemeine Java-Themen 2
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
F Cardlayout prüfen ob schon vorhanden, keine doppelten Allgemeine Java-Themen 3
turmaline Regex gegen Regex prüfen Allgemeine Java-Themen 4
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
Y Prüfen ob ein Graph immer einen von mehren Enden erreicht Allgemeine Java-Themen 4
O Prüfen ob String eine Zahl mit maximal 2 Nachkommastellen ist Allgemeine Java-Themen 4
M datei aufruf prüfen Allgemeine Java-Themen 9
D Best Practice Prüfen ob jar nachträglich geändert wurde Allgemeine Java-Themen 2
B Dateien prüfen auf Gleichheit Allgemeine Java-Themen 5
H String auf Zahlen prüfen Allgemeine Java-Themen 4
T auf Valides Datum prüfen Allgemeine Java-Themen 12
N Java Version Prüfen lassen Allgemeine Java-Themen 11
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
E selber Klassen kompilieren/ prüfen Allgemeine Java-Themen 5
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
T Methoden Zahlenpalindrom laufzeitoptimiert prüfen Allgemeine Java-Themen 4
U ResourceBundles auf vollständigkeit prüfen Allgemeine Java-Themen 2
C jollyday: prüfen, ob Datum = Feiertag Allgemeine Java-Themen 8
C Prüfen ob sich ein Punkt innerhalb einer Kugel befindet (Java3D,nicht-lineare GLS) Allgemeine Java-Themen 5
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
E Prüfen ob Fenster mit Namen offen ist Allgemeine Java-Themen 2
M Binärbaum auf vollständigkeit prüfen Allgemeine Java-Themen 4
S Mail Adressen Syntax prüfen Allgemeine Java-Themen 22
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
N List auf null prüfen Allgemeine Java-Themen 2
B generischen Typ prüfen Allgemeine Java-Themen 7
D prüfen, ob Enums bestimmte Elemente enthalten Allgemeine Java-Themen 3
N Prüfen ob Methode ausgeführt wird und diese ggf. abbrechen? Allgemeine Java-Themen 8
B Prüfen ob ein Programm gestartet wurde Allgemeine Java-Themen 23
N ArrayList nach Reihenfolge prüfen Allgemeine Java-Themen 2
C Prüfen auf Zahl und 6 stellig fehlerhaft? warum? Allgemeine Java-Themen 7
D Wie prüfen, ob ein String Teil eines Enum Types ist? Allgemeine Java-Themen 12
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
data89 Bilder mit Java prüfen - suche dringend Hilfe Allgemeine Java-Themen 8
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
M Prüfen, welche anderen Programme laufen Allgemeine Java-Themen 5
K Zip dateien prüfen Allgemeine Java-Themen 3
G ZIP Archiv auf Konsistenz prüfen Allgemeine Java-Themen 2
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
L Passwort mit Regulärem Ausdruck prüfen Allgemeine Java-Themen 6
P Sound Buffer prüfen Allgemeine Java-Themen 12
B PrintService - Wie prüfen ob Drucker online ist? Allgemeine Java-Themen 2
A Textfeld prüfen, ob ein Punkt eingegeben wurde Allgemeine Java-Themen 8
flashfactor Prüfen ob bereits eine Instanz gestartet ist Allgemeine Java-Themen 2
C Prüfen, ob eine Methode eine andere überschreibt! WIE? Allgemeine Java-Themen 8
N Prüfen ob Objekt in Liste enthalten ist Allgemeine Java-Themen 17
G Prüfen welche JRE-Version gebraucht wird Allgemeine Java-Themen 19
J Mit Patternmatching einen Satz prüfen Allgemeine Java-Themen 12
G Prüfen ob Ziffern einer Zahl pandigital sind? Allgemeine Java-Themen 15
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
J Wie prüfen ob eine Datei vom OS fertig geschrieben wurde? Allgemeine Java-Themen 6
TheJavaKid Zeile auf existenz von String prüfen. Allgemeine Java-Themen 19
A Weshalb man Parameter auf Gültigkeit prüfen sollte Allgemeine Java-Themen 6
N Prüfen ob ein String in einen Integer umgewandelt werden kan Allgemeine Java-Themen 4
O String auf zahlen prüfen (java 1.3) Allgemeine Java-Themen 4
G Datei Zugriffsrechte prüfen Allgemeine Java-Themen 2
Linad Bilder auf Gleichheit prüfen Allgemeine Java-Themen 6
G ResultSet auf Inhalt prüfen? Allgemeine Java-Themen 2
H Prüfen, ob es sich um ein Integer handelt Allgemeine Java-Themen 4
C String str prüfen Allgemeine Java-Themen 3
H Prüfen ob ein String grösser als 4 Zeichen ist Allgemeine Java-Themen 3
F Prüfen, ob Windows oder UNIX Allgemeine Java-Themen 2
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
R char aus String entfernen Allgemeine Java-Themen 10
Thallius Char +1 wird int? Allgemeine Java-Themen 7
MiMa Illegal char im Dateinamen Allgemeine Java-Themen 14
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
JG12111989 char-Array in int-Array umwandeln Allgemeine Java-Themen 27
J char Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
R Char cannot be derefenrenced? Allgemeine Java-Themen 14
R Bibliothek für Darstellung von char auf 5x7 Dot-Matrix Allgemeine Java-Themen 2
S Char-index aller Buchstaben..? Allgemeine Java-Themen 3
C char und char-Array als parameter übergeben Allgemeine Java-Themen 6
J char-Array löschen Allgemeine Java-Themen 5
S Klassen Zuorgnung Object-char Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben