Hallo,
ich habe einen String der so irgendwie aussieht (es handelt sich dabei um mehrere tns-einträge einer oracle datenbank):
a =
(b=
(c=(d=e)(f=g))
(h=i)
)
j =
(b=
(c=(d=k)(f=l))
(h=m)
(n=o)
)
irgendwann möchte ich dahin kommen, dass das Ganze so aussieht:
a.b.c.d = e
a.b.c.f = g
a.b.h = i
j.b.c.d = k
j.b.c.f = l
j.b.h = m
j.b.n = o
ich habe noch nicht wirklich eine idee, wie ich dahin kommen könnte; hab derzeit mal folgende Schleife:
while ((line = fh.readLine()) != null) {
// get key-value-pairs
line = line.replaceAll("\\s", "");
line = line.replaceAll("\\(", "\n");
line = line.replaceAll("\\)+", "\n");
// skip lines with no '='
if (!line.contains("=")) continue;
System.out.println(line);
}
damit krieg ich einen output, der mal ca. so aussieht:
a=
b=
c=
d=e
f=g
usw.
... ob mir das was bringt, wird sich noch herausstellen; zur Zeit stört mich aber, dass in der Zeile
line = line.replaceAll("\\)+", "\n");
JEDE Klammer durch ein \n ersetzt wird; dabei will ich, dass auch das auftreten MEHRERER Klammern hintereinander nur durch ein einzelnes \n ersetzt wird!
Versteht irgendwer, wieso das so ist / wie man das lösen kann?
danke!
guni
PS.:
kann ich mir im neuen Look des Forums noch irgendwo meine beobachteten Themen anzeigen lassen?!
und wo krieg ich meine code-tags wieder her?! :-(
ich habe einen String der so irgendwie aussieht (es handelt sich dabei um mehrere tns-einträge einer oracle datenbank):
a =
(b=
(c=(d=e)(f=g))
(h=i)
)
j =
(b=
(c=(d=k)(f=l))
(h=m)
(n=o)
)
irgendwann möchte ich dahin kommen, dass das Ganze so aussieht:
a.b.c.d = e
a.b.c.f = g
a.b.h = i
j.b.c.d = k
j.b.c.f = l
j.b.h = m
j.b.n = o
ich habe noch nicht wirklich eine idee, wie ich dahin kommen könnte; hab derzeit mal folgende Schleife:
while ((line = fh.readLine()) != null) {
// get key-value-pairs
line = line.replaceAll("\\s", "");
line = line.replaceAll("\\(", "\n");
line = line.replaceAll("\\)+", "\n");
// skip lines with no '='
if (!line.contains("=")) continue;
System.out.println(line);
}
damit krieg ich einen output, der mal ca. so aussieht:
a=
b=
c=
d=e
f=g
usw.
... ob mir das was bringt, wird sich noch herausstellen; zur Zeit stört mich aber, dass in der Zeile
line = line.replaceAll("\\)+", "\n");
JEDE Klammer durch ein \n ersetzt wird; dabei will ich, dass auch das auftreten MEHRERER Klammern hintereinander nur durch ein einzelnes \n ersetzt wird!
Versteht irgendwer, wieso das so ist / wie man das lösen kann?
danke!
guni
PS.:
kann ich mir im neuen Look des Forums noch irgendwo meine beobachteten Themen anzeigen lassen?!
und wo krieg ich meine code-tags wieder her?! :-(