# führende nullen entfernen



## Guest (19. Mai 2008)

hi,

ihrgend wie bekomm ich es nicht hin.

ich möchte geren von eibnem string der eine zahl in form von 001 enthält die führenden nullen entfernen.

gibt es dafür ne methode. hab es schon mit integer parseint versucht hat aber nix gehoplfen.

hat jemand dafür ne lösung, wäre echt super.

grüße und danke!


----------



## Mikrolisk (19. Mai 2008)

Versuche es mal mit

String ohneNull = Integer.parseInt(s) + "";


Andreas


----------



## Hawkes (19. Mai 2008)

Eventuell sowas:


```
String str= "00010";
          while(str.charAt(0) == '0') {
              str = str.substring(1);
          }
}
```


----------



## MiDniGG (19. Mai 2008)

```
String#replaceAll("0", "");
```

Wobei es mit nem Integer.parseInt(String); wirklich auch gehen sollte.................


----------



## Mikrolisk (19. Mai 2008)

Und das replaceAll(...) löscht auch ALLE Nullen, nicht nur führende.

Andreas


----------



## MiDniGG (19. Mai 2008)

sorry. Hab ich jetzt voll verpeilt... Einfach ignorieren ^^


----------



## cburghardt (19. Mai 2008)

Mikrolisk hat gesagt.:
			
		

> Versuche es mal mit
> 
> String ohneNull = Integer.parseInt(s) + "";
> 
> ...



String ohneNull = Integer.parseInt(s).toString()
Spart ein Objekt und ist besser zu lesen


----------



## Guest (19. Mai 2008)

Anonymous hat gesagt.:
			
		

> ich möchte geren von eibnem string der eine zahl in form von 001 enthält die führenden nullen entfernen.




```
s = s.replaceFirst("0*", "");
```


----------



## Guest (19. Mai 2008)

hallo,

super danke für die SUPER schnelle antewort.

grüße


----------



## rory (6. Dez 2011)

parseInt(s) hat den Nachteil, dass man nur reine Zahlen parsen kann, nicht z.B. 034FB.

replaceFirst("0*","") ersetzt glaube ich nicht nur führende 0, sondern ein beliebiges erstes Vorkommen einer beliebigen Anzahl von 0, somit wird z.B. 303 zu 33 umgewandelt.

replaceAll mit der richtigen regular expression dürfte aber den gewünschten Effekt erfüllen:

```
s=s.replaceAll("^0*", "")
```
Das Dach "^" sorgt dafür, dass nur 0 vom Anfag des Strings entfernt werden.
Das funktioniert also nicht, wenn vor der 0 noch nen Leerzeichen oder ähnliches ist, nur wenn die 0 ganz am Anfang kommt.


----------



## Gast2 (6. Dez 2011)

Also zuerstmal ist der Thread mehr als drei Jahre alt, den muss man nicht unbedingt wieder aus dem Keller hervorholen 



> replaceFirst("0*","") ersetzt glaube ich nicht nur führende 0, sondern ein beliebiges erstes Vorkommen einer beliebigen Anzahl von 0, somit wird z.B. 303 zu 33 umgewandelt.


Das ist falsch, 303 bleibt 303, es werden nur führende Nullen entfernt. 
	
	
	
	





```
0000303
```
 würde zu 303 werden.


```
replaceFirst("0*","")
```
und

```
replaceAll("^0*", "")
```
laufen aufs selbe hinaus wenn der String nur aus einer Zeile besteht


----------



## irgendjemand (7. Dez 2011)

rory hat gesagt.:


> parseInt(s) hat den Nachteil, dass man nur reine Zahlen parsen kann, nicht z.B. 034FB



ist richtig ... dafür gibt es ja auch die methode Integer.parseInt(String, int)

der zweite parameter ist der sog. radix ... also die menge an verschiedenen symbolen ...
wenn du HEX parsen willst brauchst du also 16 verschiedene zeichen ... also gibst du als radix 16 an ...
mit

```
Integer.parseInt(String, 16);
```
kannst du so auch HEX zahlen parsen ...


----------



## emailundlos (7. Dez 2011)

Thema ist wohl erledingt, wer will sich damit beschäftigen?


----------



## irgendjemand (7. Dez 2011)

vllt SOLLTEN es mal die MODs tun und sich mit der frage befassen wie man es verhindern könnte das jahre-alte threads wieder ausgebuddelt werden ...

*persönlich würde ich auto-close nach 6 wochen einbauen ...*


----------



## THX (23. Mai 2012)

ne nicht löschen! mir hat der Thread HEUTE Mai 2012 geholfen. Danke!


----------

