Was ist der beste Weg zu überprüfen, ob ein String leer ist als String.trim (). length () in Java 5/6?

9

Es gibt wahrscheinlich eine Methode, um den Index des ersten nicht leeren Zeichens in einem String in Java5 / 6 zurückzugeben. Aber ich kann es nicht mehr finden. Ein Code anlizierendes Tool sagt, es ist besser als String.trim().length() zu überprüfen.

    
chance 28.04.2011, 13:57
quelle

9 Antworten

6

Ich würde den Guava CharMatcher Klasse:

%Vor%     
Joachim Sauer 28.04.2011, 14:00
quelle
9

Ich benutze immer gerne die Apache Commons StringUtils Bibliothek. Es hat isEmpty () und ist isBlank (), die Leerzeichen behandelt.

Ссылка

Ganz zu schweigen von den zahlreichen anderen hilfreichen Methoden in dieser Klasse und der Bibliothek im Allgemeinen.

    
Jberg 28.04.2011 14:04
quelle
3

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.

    
chance 06.05.2011 13:32
quelle
2

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.

    
Tobber 28.04.2011 15:11
quelle
1

Java 6 hat String.isEmpty() eingeführt, sodass Sie es in Verbindung mit String.trim() verwenden können. Sie können auch reguläre Ausdrücke verwenden, zum Beispiel mit einer solchen Bedingung: !str.matches("\s*") .

    
Bolo 28.04.2011 14:00
quelle
0

Zu genau diesem Zweck gibt es eine Methode in String.

%Vor%

Dies wird wahr zurückgeben.

    
Zach 28.04.2011 14:00
quelle
0

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.

    
a_horse_with_no_name 28.04.2011 14:14
quelle
0

probiere

aus %Vor%     
Md Ayub Ali Sarker 22.12.2016 14:53
quelle
-3

(Bester Weg) string.equals("")

Aber auch

%Vor%     
Christopher Gwilliams 28.04.2011 14:00
quelle

Tags und Links