# ZeichenZaehlen



## iks (26. Jan 2012)

Guten Tag!

Also ich habe hier eine Methode, die die Zeichen in einer Zeichenkette zaehlen soll:

public static int[] zeichenZaehlen(String zeichenkette, char[] zeichenArray) {}

Im Prinzip habe ich auch schon alles gelöst, also mit einem von mir vorgegebenen Array zaehlt meine Methode brav die Zeichen. Das geht aber nur, wenn ich das "char[] zeichenArray" aus der Klammer nehme und mit einem eigenen vorgegebenen char Array arbeite. 
Der Aufruf in der Testklasse soll aber so von statten gehen:

Zeichenkettenanalyse.zeichenZaehlen("Zaehle die Zeichen",{'z', 'i', 'n'}); 

Da sagt mir der Compiler dann aber sofort, dass ihm die {} nicht gefallen. Wenn ich die rausnehme, ist klar, dann ist es nur noch: char,char,char. Und das ist ja nun auch nicht das gesuchte!

Wie also übergebe ich das Char-Array?

Vielen Dank im Vorraus für alle Antworten!


----------



## eRaaaa (26. Jan 2012)

Nö, der Aufruf so kann auch nicht gehen, das ist definitiv falsch.
Versuchs mal so:
[c]Zeichenkettenanalyse.zeichenZaehlen("Zaehle die Zeichen",new char[]{'z', 'i', 'n'});[/c]

oder aber du änderst die Signatur ab mit varargs:

```
public static int[] zeichenZaehlen(String zeichenkette, char... zeichenArray)
```
dann ginge der Aufruf:

```
Zeichenkettenanalyse.zeichenZaehlen("Zaehle die Zeichen",'z', 'i', 'n')
```


----------



## iks (26. Jan 2012)

Vielen, vielen Dank für diese Umgehende Antwort!
Zeichenkettenanalyse.zeichenZaehlen("Zaehle die Zeichen",new char[]{'z', 'i', 'n'});  funktioniert!

...Es ist schon wirklich ein Graus, dass in einer Aufgabenbeschreibung solche Fehler enthalten sind, für Anfänger wie mich ist das sehr verwirrend.


----------



## HimBromBeere (26. Jan 2012)

Wie genau lautete denn deine Aufgabenstellung, stand da wirklich, du sollst ein char-Array an deine Funktion übergeben oder einfach nur: Zählen Sie die Anzahl bestimmter Buchstaben in einer Zeichenkette...


----------



## eRaaaa (26. Jan 2012)

HimBromBeere hat gesagt.:


> Wie genau lautete denn deine Aufgabenstellung, stand da wirklich, du sollst ein char-Array an deine Funktion übergeben oder einfach nur: Zählen Sie die Anzahl bestimmter Buchstaben in einer Zeichenkette...



Wie würdest du denn die "bestimmten Buchstaben" übergeben wollen? :bae:


----------



## iks (26. Jan 2012)

Die Anzahlen der gezählten Zeichen sollen als Array vom Typ int von der Methode zurückgeben werden.

Beispiel:

Zeichenkettenanalyse.zeichenZaehlen("Zaehle die Zeichen",{'z', 'i', 'n'});

Das ist der Originaltext...und das funktioniert ja nun definitiv nicht...


----------



## HimBromBeere (26. Jan 2012)

> Wie würdest du denn die "bestimmten Buchstaben" übergeben wollen?



Ich dachte an sowas wie:
Zeichenkettenanalyse.zaehleZeichen("der zu übergebende String", 'd');
Zeichenkettenanalyse.zaehleZeichen("der zu übergebende String", 's');
Zeichenkettenanalyse.zaehleZeichen("der zu übergebende String", 'C');

das Ganze in einer kleinen Schleife, die alle zu testenden Zeichen durchläuft (hmmm... aber die würden wahrscheinlich auch irgendwann als char-Array übergeben worden sein... OK, das w#re nur eine Verschiebung des Problems). 

Wenn´s aber so in der Aufgabe steht, wirst du halt 
	
	
	
	





```
char[] {...}
```
 verwenden müssen (oder die erwähnten varargs: 
	
	
	
	





```
char ... varargs
```
).


----------



## iks (26. Jan 2012)

Das war auch der erste Teil der Aufgabe, da sollten wir nur auf 1 Buchstaben prüfen, das ist ja auch kein Problem. Das Erstellen der Methode hat mir auch keine Schwierigkeiten bereitet, das Problem war nur die Parameterübergabe, und das funktioniert jetzt ja!
Dennoch doof, wenns in der Aufgabe falsch steht, weil ich einfach davon ausgehe, das es dort korrekt angegeben ist....
Naja wie auch immer, Problem gelöst (weitere werden folgen)!
P.S.: Super-Aktivität hier im Forum, ihr seid Klasse!


----------

