# Testen ob String leer ist



## reno (8. Mai 2008)

Hallo,
ich komme aus der VisualBasic-Welt.   Da ist es vorteilhafter die Stringlänge (auf 0) zu überprüfen, als zu testen, ob der String "" ist, wenn man wissen wil ob der String leer ist.

Wie ist das in Java? Gibt es da auch Unterschiede? Ich weiß nicht, welche Methode ich da hernehmen soll.


```
fileName.isEmpty() == true
```
 oder 
	
	
	
	





```
fileName.length() == 0
```
 oder 
	
	
	
	





```
fileName.equals("") == true
```
? 

Besten Dank im Voraus.


----------



## maki (8. Mai 2008)

Definiere leer.

Ist es:
- null
- "    "
- ""

Oder all das?


----------



## ARadauer (8. Mai 2008)

Geschmacksachen
ich bevorzuge


```
fileName.length() == 0
```


----------



## SlaterB (8. Mai 2008)

also ein String mit einem Leerzeichen " " ist was anderes als die anderen, der hat Länge 1,

null ist auch was anderes, da wird der length()-Aufruf zu einer Exception führen


nur empty(), Länge 0 und "" sind äquivalent, aber wenn dann auf jeden Fall .equals(""), nicht == ""


edit: noch einiges editiert, manchmal sende ich zu früh ab, fehlt die Hälfte


----------



## mikachu (8. Mai 2008)

streitet euch doch nicht ;-)


```
stringInstance.trim().length() == 0
```

und gut


----------



## Escorter (8. Mai 2008)

maki hat gesagt.:
			
		

> Definiere leer.
> 
> Ist es:
> - null
> ...



Da gibt es nichts zu definieren

null - Dann existiert der String garnicht also kann er auch nicht leer sein
" " - Der String enthält ein whitespace also ist er nicht leer
"" - Das ist die einzige Art wie ein Strin leer sein kann

Aber was jetzt ab schnellsten ist


```
myString.equals("")
```
oder

```
myString.lenght() == 0
```

das kann ich dir auch nicht sagen. Ich benutze die erste Variante...

//EDIT:

Wen du den String vorher trimst kommt es zu einem falschen Ergenis, da dann auch der Fall " " als leer erkannt wird

Gruß,
Esco


----------



## ARadauer (8. Mai 2008)

der threadsteller hat drei beispiele gebracht, was er unter einem leeren string versteht, da kam kein null und auch kein " " vor. Also geh ich mal davon aus, dass er weiß das " " und null keine Leerstrings sind....


----------



## Escorter (8. Mai 2008)

Also handelt es sich um reine Geschmackssache? oder gibt es eine Variante, die von Sun empfohlen / abgeraten wird?

Gruß,
Esco


----------



## maki (8. Mai 2008)

> Da gibt es nichts zu definieren


Quatsch, genau darum geht es hier.

Speziell wenn es um Dateinamen geht, sind alle diese Möglichekiten gleich "leer".


----------



## reno (8. Mai 2008)

Ops, ich wollte keinen Streit provozieren.   Sorry

Der String ist bereits initialisiert. Ich will nicht auf Nullstring testen, sondern ob er inhaltlich leer ist.


----------



## maki (8. Mai 2008)

Dann ab Java 6 isEmpty, davor length == 0 oder "".equals(filename)

Streit gibt es keinen, nur Meinungen


----------



## Guest (8. Mai 2008)

reno hat gesagt.:
			
		

> Hallo,
> 
> ```
> fileName.isEmpty() == true
> ...


Ein boolescher Ausdruck ist bereits true oder false. Der erneute Vergleich mit "== true" bringt gar nichts.


----------



## foobar (8. Mai 2008)

```
myString.equals("")
```
Wenn schon dann so:


```
"".equals(myString)
```
Erst die Konstante, dann die Variable. Damit spart man sich auch den nullcheck. 
Ich bevorzuge aber auch die Variante mit trim und length, denn ein paar Blanks haben sich schnell mal eingeschmuggelt.


----------

