Früher oder später, etwas muss eine Schleife bilden. Es ist viel einfacher für Sie, die (sehr einfache) Schleife zu schreiben, als etwas zu verwenden wie split
die viel leistungsfähiger ist, als Sie brauchen.
Kapseln Sie die Schleife auf jeden Fall in einer eigenen Methode, z. B.
public static int countOccurrences(String haystack, char needle)
{
int count = 0;
for (int i=0; i < haystack.length(); i++)
{
if (haystack.charAt(i) == needle)
{
count++;
}
}
return count;
}
Dann brauchen Sie die Schleife nicht in Ihrem Hauptcode zu haben - aber irgendwo muss die Schleife ja sein.
1 Stimmen
Hausaufgaben? Denn sonst sehe ich nicht die Notwendigkeit, die Schleife zu vermeiden.
26 Stimmen
Ich bin einer Schleife nicht abgeneigt, sondern suche eher nach einem idiomatischen Einzeiler.
2 Stimmen
Schleifen wurden für ein Problem wie dieses geschaffen. Schreiben Sie die Schleife in eine gewöhnliche Utility-Klasse und rufen Sie dann Ihren frisch geprägten One-Liner auf.
0 Stimmen
Ähnliche Frage für Saiten: stackoverflow.com/questions/767759/
0 Stimmen
Ich möchte nur darauf hinweisen, dass ich es schätze, die Einzeiler zu finden, es macht Spaß und ist (als echter Vorteil) oft leicht zu merken, aber ich möchte darauf hinweisen, dass eine separate Methode und eine Schleife in fast jeder Hinsicht besser ist - Lesbarkeit und sogar Leistung. Die meisten der unten aufgeführten "eleganten" Lösungen sind nicht sehr leistungsfähig, da sie das Umformen von Zeichenketten bzw. das Kopieren von Speicher erfordern, während eine Schleife, die lediglich die Zeichenkette durchsucht und die Vorkommen zählt, schnell und einfach wäre. Nicht, dass die Leistung im Allgemeinen ein Faktor sein sollte, aber schauen Sie nicht auf die eine Zeile über einer Schleife und nehmen Sie an, dass es besser funktionieren wird.
0 Stimmen
Mögliches Duplikat von Vorkommen von Zeichen in einem Java String finden
0 Stimmen
@thSoft Bitte wählen Sie in Zukunft die am höchsten bewerteten Fragen/Antworten als Ziel für die Duplizierung aus.