Ich habe eine sehr lange Java-Zeichenfolge und ich versuche, die Hälfte der Vorkommen eines bestimmten Wortes mit seiner Rückseite zu ersetzen.Regex replaceAll mit Substitutionswahrscheinlichkeit
Also, wenn die Zeichenfolge "Hallo mein Freund Hallo" ist, sollte die Ausgabe, wenn ich es mit dem Wort "Hallo" ausführen, etwas wie "Hallo mein Freund olleh" geben.
Ich weiß, dass ich ein Wort mit
new StringBuilder(str).reverse().toString()
rückgängig machen kann und dass ich
Str.replaceAll("hello", "olleh")
die Zeichenfolge zu ändern, verwenden können. Aber wie kann ich replaceAll nur die Hälfte der Vorkommen von Hallo ersetzen? Gibt es eine Möglichkeit, eine Wahrscheinlichkeit in replaceAll einzugeben oder den Text zu durchlaufen und bei jedem Auftreten zu stoppen?
Ihr Problem ist lose definiert. Muss es genau die Hälfte sein? Wenn ja, wie wird entschieden, welches Ereignis ersetzt werden soll und welches nicht ersetzt werden soll? Wenn es nicht genau eine Hälfte ist, wie genau kann das Ergebnis sein? Etc – Dici
@Dici Ich meinte genau die Hälfte, aber eine ungleichmäßige Aufteilung ist auch in Ordnung – Alessandro
Hinweis: Wenn Sie Zeichenfolgen ohne Regex-Sonderzeichen ersetzen, verwenden Sie 'String.replace', nicht' String.replaceAll'. –