Okay Leute, ich habe es endlich aus den PMD-Regeln von InefficientEmptyStringCheck gefunden:
IneffizienteEmptyStringCheck:
Schon seit: PMD 3.6
String.trim (). Length () ist ein ineffiziente Art und Weise zu überprüfen, ob ein String ist wirklich leer, da es ein neues erstellt String-Objekt, nur um seine Größe zu überprüfen. Erwägen Sie, eine statische Funktion zu erstellen das durchläuft eine Zeichenfolge und überprüft Character.isWhitespace () auf jedem Zeichen und Rückgabe false, wenn a Nicht-Leerzeichen wird gefunden.
Dies ist nur ein Vorschlag von PMD. Es zu übernehmen oder nicht hängt davon ab, welche Priorität hat: die Effizienz von Programmen oder die Zeit von Programmierern.
Wenn Sie testen möchten, ob nur Leerzeichen enthalten sind, können Sie RegEx
verwenden %Vor%Ich denke, es ist effizienter als trim (). isEmpty (), besonders wenn Sie Whitespaces erwarten und lange Strings haben, obwohl ich nicht sicher bin, wie viel Aufwand es braucht, um das RegEx zu kompilieren.
Wenn Sie nach einer Zeichenkette mit einer Länge von Null suchen möchten, verwenden Sie isEmpty()
oder length() == 0
am besten.
Wenn Sie testen möchten, ob die Zeichenfolge nur Leerzeichen enthält, ist die Suche nach dem ersten Zeichen ohne Leerzeichen effizienter, da kein Zwischenobjekt erstellt wird (wie bei trim()
)
Aber auf jeden Fall empfehle ich Apaches commons StringUtils.isEmpty()
, da es das alles gut kapselt.