Zuerst wird der Grund, warum ich tun müssen, ist dies, weil der API in Apache's Commons StringUtils Methode zwei Arrays mit gemeinsam genutzten Daten erstellen:Wie in Java
StringUtils.replaceEach(String text, String[] searchList, String[] replacementList)
Was ich tun möchte, ist es, alle HTML-Sonderzeichenkodierungen ersetzen mit dem eigentlichen Sonderzeichen, was bedeutet, dass die searchList
und replacementList
Arrays werden ziemlich groß sein. Wie kann ich das leicht lesen und pflegen?
Ja, ich könnte zwei Arrays erstellen, aber wenn ich das tue, dann wird es sehr einfach sein, Fehler zu machen. Woher weiß ich, dass ich keine spezielle Kodierung vermisse, dass ich die richtige Position habe, etc. Ich hätte lieber Code, wo die Kodierung und das Zeichen nebeneinander liegen, um Fehler zu vermeiden. Ich schaute auf eine HashMap
, aber dann können Sie nur die Schlüssel (Codierungen) bekommen und müssen durchlaufen, um die Zeichenwerte zu erhalten, die nicht sehr performant ist, vor allem nicht, wenn es viel laufen wird. Dasselbe gilt für ein zweidimensionales Array, in dem Sie jeden Lauf teilen müssen.
Nicht wirklich eine Antwort, aber Sie sind sich bewusst von https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html zu Escape/Unescape HTML? –
Ich würde das gerne machen und sogar JSoup betrachten, das Problem ist, dass ich nur einige Codierungen ersetzen möchte und nicht alle. Ich bin nicht in der Lage, eine Möglichkeit zu finden, die Kodierungen selektiv zu ersetzen :( –
Verstanden. In diesem Fall würde ich nur eine Liste machen, wo jedes Token aus dem Element besteht, nach dem und dem Ersatz zu suchen, und das drehen Listen Sie die beiden Arrays mit einer Art Funktion auf: Wenn Sie die searchList und die ersatzliste nur einmal aus der Token-Liste auffüllen, bin ich sicher, dass Sie ziemlich sicher sind .. –