Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public static int[] zaehleZeichen(String str, char[] c),
die für jedes Zeichen im Array c zählt, wie oft es im String str enthalten ist. Die ermittelten Anzahlen sollen in Form eines int-Arrays zurückgeliefert werden. Dabei soll die Position im Ergebnis-Array der Position des gezählten Zeichens im Array c entsprechen.
Beispiel:
Die Rückgabe für
zaehleZeichen("Dies ist ein Test", {'e','a'})
ist somit das Array {3,0}, da der Buchstabe e 3x und der Buchstabe a gar nicht im String enthalten sind.
das was ich bis jetzt gemacht habe ist:
Code:
public static int[] zaehleZeichen(String str, char[] c)
{
int []arr= new int [c.length];
int count=0;
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)==c[i])
{
count++;
}
arr[i]=count;
}
for(int i:arr)
{
System.out.println(arr[i]);
}
return arr;
}
so will das aber nicht klappen.
Mit freundlichen Grüßen
du musst deinen count in der schleife auch resetten und deine methode geht nur, wenn str und c gleich lang sind. du brauchst unterschiedliche indizes und dazu wahrscheinlich 2 inneinander geschachtelte schleifen
Du hast ein Array mit Integern und es spricht nichts dagegen, diese zum hochzählen zu nutzen.
Wenn Du einen Zähler haben willst, musst Du die Schleifen tauschen, so dass Du die Anzahl eines Vorkommens zählst und nicht wie oft ein Buchstabe des Strings in dem Array mit gesuchten Buchstaben vorkommt.
Aber wie gesagt: Wieso etwas in einer Variablen count ablegen, wenn der Wert später ehh woanders stehen soll?
public static int[] zaehleZeichen(String str, char[] c)
{
int []arr= new int [c.length];
int count=0;
for(int i=0;i<c.length;i++)
{
for(int j=0;j<str.length();j++)
{
if(c[i]==str.charAt(j))
{
count++;
}
}
arr[i]=count;
count=0;
}
return arr;
}
public static void main (String[]args)
{
char[] c = {'a','e'};
System.out.println(zaehleZeichen("Dies ist ein Test",c));
}
so so klappts schonmal ...nur verstehe ich nicht ganz warum ich die speicheradresse auch angezeigt bekomme und wie ich dies verhinderen kann.(
0 3 [I@6d06d69c
)
Mit freundlichen Grüßen
du könntest übrigens auch eine extra Methode für die innere for Schleife spendieren, dann würde dein Code etwas aufgeräumter aussehen und vor allem kannst du dann besser nachvollziehen wo der Fehler liegt.
zum Beispiel so:
Java:
for(int index = 0; index < charArr.length; index++) {
arr[index] = countCharsInText(text, charArr[index]);
}