Es sei denn, Sie können apache.commons.lang nicht verwenden Der folgende Code kommt nicht ins Spiel.
Verwenden Sie die Streifenmethode. Es ist schnell.
Ab diesem Zeitpunkt wird es nur für diejenigen empfohlen, die Dinge mögen.
Zum Beispiel. Ich möchte andere Elemente als Leerzeichen in voller Breite, Leerzeichen in halber Breite und Tabulatorzeichen erhalten.
Ich denke es ist üblich. Alles ersetzen? "Ich möchte keine Leerzeichen mit halber Breite in den Elementen ersetzen, die ich abrufen möchte." Also kann ich es nicht benutzen.
Zu dieser Zeit habe ich den folgenden Code geschrieben. Ich hoffe es hilft dem Copy / Paste Programmierer.
private String trim(String target) {
if (target == null || target.isEmpty() || TRIM_CHARS.isEmpty()) {
return target;
}
final char[] chars = target.toCharArray();
int trimHeadIndex = 0;
int trimTailIndex = 0;
for (int i = 0; i < chars.length; i++) {
if (!TRIM_CHARS.contains(chars[i])) {
trimHeadIndex = i;
break;
}
}
for (int t = chars.length; t > 0; t--) {
if (!TRIM_CHARS.contains(chars[t - 1])) {
trimTailIndex = t;
break;
}
}
return target.substring(trimHeadIndex, trimTailIndex);
}
Obwohl TRIM_CHARS ein Array ist Zur Erleichterung des Hinzufügens zuerst mit List, Nachdem Sie den Vorgang abgeschlossen haben, setzen Sie ihn auf "Collections # unmodizableList" und setzen Sie ihn auf " Es kann besser sein, es als Konstante zu haben. (Nicht nur der letzte Modifikator)
Ich dachte noch einmal: "Ich denke, ich kann es mit regulären Ausdrücken tun." Ist es in Ordnung, weil es realisiert wurde?
Übrigens, auch wenn ich mit Ersatzpaarzeichen experimentiert habe, hat es wie erwartet funktioniert. (Unerwartet)
Recommended Posts