Ich komm nicht weiter..
ich muss mehrere Wörter in einem Word-Dokument ersetzten.
also zum Beispiel %ORT% mit Berlin.
Ich schreibe vorher in eine map ORT und Berlin
Die map und die Dateinamen übergebe ich an folgende Funktion:
im Grunde funktioniert das auch so.. das Problem ist aber, dass wenn in einer Zeile zwei Schlüssel vor kommen.. also z.B. %ORT% %PLZ% kommt alles durcheinander und nichts stimmt mehr.
Wie kann ich dieses Problem lösen?
Vielen Dank schon mal
ich muss mehrere Wörter in einem Word-Dokument ersetzten.
also zum Beispiel %ORT% mit Berlin.
Ich schreibe vorher in eine map ORT und Berlin
Die map und die Dateinamen übergebe ich an folgende Funktion:
Java:
private static final Pattern TOKEN_PATTERN = Pattern.compile(".*\\%(.+)\\%.*");
private static final String TOKEN_DELIMITER = "%";
private static void replaceTokensInTextFile(Map<String, String> map, String templateFileName, String newFileName) {
try {
BufferedReader reader = new BufferedReader(new FileReader(templateFileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(newFileName));
String line = reader.readLine();
while (line != null) {
Matcher m = TOKEN_PATTERN.matcher(line);
if (m.matches()) {
String token = m.group(1);
String replacement = map.get(token);
if (replacement == null) {
replacement = "NULL";
}
line = line.replace(TOKEN_DELIMITER + token + TOKEN_DELIMITER, replacement);
}
writer.write(line);
line = reader.readLine();
}
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
im Grunde funktioniert das auch so.. das Problem ist aber, dass wenn in einer Zeile zwei Schlüssel vor kommen.. also z.B. %ORT% %PLZ% kommt alles durcheinander und nichts stimmt mehr.
Wie kann ich dieses Problem lösen?
Vielen Dank schon mal