public boolean compare(char[] c1, char[] c2){
String s1 = new String(c1);
String s2 = new String(c2);
return s1.equals(s2);
}
und dann so danach suchen:
for(char[] c : v){
if(compare(c, zeichenKette)){
//gefunden
}
}
Besser wäre aber ein Wrapper-Objekt zu basteln und die hashCode und equals Methode zu überschreiben bzw. gleich String zu verwenden
Weil er zum Vergleichen nur die Referenzen verwendet (standard Implementierung von Object)
Du willst aber den Inhalt vergleichen und dafür bräuchtest du eine eigene Implementierung von equals
equals von char[] interessiert sich nicht für den Inhalt, prüft nur die Objekt-Identität an sich,
zwei Arrays sind niemals gleich,
du bräuchtest also ein Wrapper-Objekt um die Array drumherum und in der equals-Operation die beiden char-Array Zeichen um Zeichen durchgehen
String macht das z.B. so, kann man grob als ein Wrapper um ein char-Array ansehen:
Code:
/**
* Compares this string to the specified object.
* The result is <code>true</code> if and only if the argument is not
* <code>null</code> and is a <code>String</code> object that represents
* the same sequence of characters as this object.
*
* @param anObject the object to compare this <code>String</code>
* against.
* @return <code>true</code> if the <code>String </code>are equal;
* <code>false</code> otherwise.
* @see java.lang.String#compareTo(java.lang.String)
* @see java.lang.String#equalsIgnoreCase(java.lang.String)
*/
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
---------
> mehrmals vorkommt?
du zählst doch in deiner Schleife die Anzahl der Vorkommen?
ok, du brauchst String schon mal gar nicht und auch kein Wrapper-Objekt, sondern schreibst einfach nur statt
> if(v.get(i).equals(zeichenkette))
nun
if(isGleich(v.get(i),zeichenkette))
und die Hilfsoperation isGleich prüft die beiden char-Arrays Zeichen für Zeichen,
so eine Operation musst du auf jeden Fall programmieren, char[] selber kann dir diese Aufgabe nicht abnehmen