Laden...

Strings auf Länge=0 oder "" prüfen - was ist besser?

Erstellt von HeikoAdams vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.705 Views
HeikoAdams Themenstarter:in
62 Beiträge seit 2017
vor 6 Jahren
Strings auf Länge=0 oder "" prüfen - was ist besser?

Hallo,
ein Kollege und ich diskutieren im Moment darüber, ob man zum Prüfen, ob ein String leer ist, besser auf Länge=0 oder "" prüfen sollte.

Ich bin der Meinung, das auf Länge=0 prüfen effizienter ist und habe die Analogie zu einem leeren Paket gezogen, wo es ja auch einfacher ist, das Gewicht zu kontrollieren, als in das Paket rein zu schauen.

Was meint Ihr?

Wer ordentlichen Code schreibt, lebt entspannter 8)

D
985 Beiträge seit 2014
vor 6 Jahren

Wenn man sich nicht sicher ist, ob Pferd A oder Pferd B schneller ist, dann lässt man beide Pferde in einem (bzw. mehreren) Rennen gegeneinander antreten. Dann steht der Gewinner fest.

In .net ist z.B. string.IsNullOrEmpty derart umgesetzt, dass die Länge auf 0 geprüft wird.
Aus dem Bauch heraus würde ich auch sagen, dass das die schnellere Variante ist.

PS Bei einem Equals Vergleich von string wird auch erst die Länge der beiden verglichen und nur wenn die Länge gleich ist, wird überhaupt erst der echte Vergleich gestartet.

16.834 Beiträge seit 2008
vor 6 Jahren

Du sprichst im Titel von "besser" aber im Text geht's Dir um "schneller".

Logisch gesehen ist es natürlich besser den Inhalt zu prüfen, zB. auch um Whitespaces zu prüfen.
Schneller ist es durchaus als Längenprüfung; allein weil die anderen Dinge ein Null-Check durchführen.

Wir sprechen hier aber von Mikro-Optimierungen.

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo HeikoAdams,

siehe auch myString == "" oder string.Length == 0, außerdem gibt es string.IsNullOrEmpty und string.IsNullOrWhitespace

Nimm die Variante die am leserlichsten ist und sofort klar macht worum es geht. Für mich wäre das eine der beiden Methoden, je nachdem wie mit Leerzeichen umgegangen werden soll.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"