# Anzahl eines bestimmten Zeichens in einem String



## jobu0101 (19. Nov 2006)

Habe eine dumme Frage. Könnte mir die Funktion eigentlich auch schnell selber schreiben, doch wahrscheinlich gibt es die schon. Ich will die Anzahl eines bestimmten Zeichens in einem String ermitteln. Wie mach ich das?


----------



## Ark (19. Nov 2006)

Du machst es ganz einfach, indem Du sie schreibst. Schon Dein Post wird länger gedauert haben als das bisschen Code, das dazu nötig ist. :bae:

Wenn Du einen Lösungsvorschlag hast, können wir ihn aber hier noch einmal diskutieren, denn man kann auch richtige Performancekiller zusammenschrauben … gerade von Leuten, die SOLCHE Fragen stellen. ^^

Nichts für ungut. 
Ark


----------



## jobu0101 (19. Nov 2006)

Also ich hätte es so gemacht:


```
static int count(String s, char c) {
int counter = 0;
char a[] = s.toCharArray();
for (char z : a)
	counter += c == z ? 1 : 0;
return counter;
}
```

Aber das wird es doch bestimmt schon geben!


----------



## lordsaibo (19. Nov 2006)

> length
> 
> public int length()
> 
> ...



weiß nicht vielleicht hilfts


----------



## jobu0101 (19. Nov 2006)

lordsaibo hat gesagt.:
			
		

> > length
> >
> > public int length()
> >
> ...



Weniger, es geht nicht um alle Zeichen, sondern nur um ein bestimmtes!


----------



## Guest (19. Nov 2006)

jobu0101 hat gesagt.:
			
		

> Also ich hätte es so gemacht:
> 
> 
> ```
> ...



zum Char Array umwandeln kannst du dir sparen und direkt auf die zeichen mit charAt(int) zugreifen


----------



## jobu0101 (19. Nov 2006)

Anonymous hat gesagt.:
			
		

> zum Char Array umwandeln kannst du dir sparen und direkt auf die zeichen mit charAt(int) zugreifen



Ich weiß jetzt nicht was rechenintensiver ist. Muss er, wenn ich auf ein char zugreife, intern den String nicht jedesmal in ein Chararray zerlegen?


----------



## Ark (19. Nov 2006)

Nein.


```
String s="irgendetwas";
char c='X';// das zu zählende Zeichen
int counter=0;// Zähler
for(int i=s.length-1;i>=0;i--){
    if(s.charAt(i)==c) counter++;
}
```
So, das geht in einer bis zwei Minuten zu schreiben. 

Ark


----------



## jobu0101 (19. Nov 2006)

Ich habe es ja auch geschrieben, doch ich dachte, dass es das bereits gäbe und dann hätte ich natürlich lieber darauf zurück gegriffen!


----------

