Hallo
Ich habe folgenden Code (betrifft Zeile 18):
[CODE lang="java" highlight="18"]/**
* Ruft in einem bestimmten Absatz ein Wort oder Textteil auf und ersetzt ihn durch etwas selbst definiertes.
*
* @param search das zu ersetzende Wort
* @param substitute damit wird das Wort ersetzt
* @param paragraphNr definierte Nummer des Paragraphen
* @return Gebe 0 (Alles OK) oder Fehlermeldung zurück.
*/
public int replace(String search, String substitute, int paragraphNr) {
if (paragraphNr < 0) {
return 451;
}
if (text.isValidString(substitute)) {
String oldText = text.getParagraph(paragraphNr);
String newText;
if (substitute.matches(".*[\\s\\!\\?,.:;„\"'\\–]+$")) {
newText = oldText.replaceAll("\\b" + search + "\\b[.!?,;:\"'-()/]+", substitute);
} else {
newText = oldText.replaceAll("\\b" + search + "\\b", substitute);
}
return text.replacePartOfTheParagraphText(paragraphNr, newText);
}
return 450;
}[/CODE]
Original String: Mir geht es gut danke.
Neuer gewollter String: Mir geht gut tschau.
Ersetzt werden soll: danke. -> tschau.
Vorgabe: Ersetzt werden dürfen Wörter (egal bei diesem Problem) und Textteile (Gehe davon aus, dass nur Wörter + Satzzeichen).
Mein Problem ist, dass danke. nicht mit tschau. ersetzt wird. Gibt es eine Möglichkeit Satzzeichen auch in \b zu nehmen oder eine einfachere Variante?
Ich habe folgenden Code (betrifft Zeile 18):
[CODE lang="java" highlight="18"]/**
* Ruft in einem bestimmten Absatz ein Wort oder Textteil auf und ersetzt ihn durch etwas selbst definiertes.
*
* @param search das zu ersetzende Wort
* @param substitute damit wird das Wort ersetzt
* @param paragraphNr definierte Nummer des Paragraphen
* @return Gebe 0 (Alles OK) oder Fehlermeldung zurück.
*/
public int replace(String search, String substitute, int paragraphNr) {
if (paragraphNr < 0) {
return 451;
}
if (text.isValidString(substitute)) {
String oldText = text.getParagraph(paragraphNr);
String newText;
if (substitute.matches(".*[\\s\\!\\?,.:;„\"'\\–]+$")) {
newText = oldText.replaceAll("\\b" + search + "\\b[.!?,;:\"'-()/]+", substitute);
} else {
newText = oldText.replaceAll("\\b" + search + "\\b", substitute);
}
return text.replacePartOfTheParagraphText(paragraphNr, newText);
}
return 450;
}[/CODE]
Original String: Mir geht es gut danke.
Neuer gewollter String: Mir geht gut tschau.
Ersetzt werden soll: danke. -> tschau.
Vorgabe: Ersetzt werden dürfen Wörter (egal bei diesem Problem) und Textteile (Gehe davon aus, dass nur Wörter + Satzzeichen).
Mein Problem ist, dass danke. nicht mit tschau. ersetzt wird. Gibt es eine Möglichkeit Satzzeichen auch in \b zu nehmen oder eine einfachere Variante?
Zuletzt bearbeitet: