Java Kommas zählen

xActionx

Software-Overclocker(in)
Java Kommas zählen

Hallo,

ich habe ein kleines Problem was Java angeht. Und zwar würde ich gerne alle Kommas in einem String zählen und hab dafür folgende Methode geschrieben:

Code:
public static int countChar(String input, char count) {
        int counter = 0;
        for (int i = 0; i < input.length(); i++) {
                if (input.charAt(i) == count) {
                        counter ++;
                }
         }
         return counter;
}

Komischerweise zählt diese Methode die Kommas nur wenn das erste Zeichen ein Komma ist. Sobald ein anderes Zeichen kommt hört das Programm auf Kommas zu zählen.

Jemand eine Idee wie ich das lösen kann?

Edit:

Habe das Problem tatsächlich selbst gelöst... Wenn man den String mit scanner.next() statt scanner.nextLine() einliest kann's eben nicht funktionieren *shame*

MFG
 
Zuletzt bearbeitet:
AW: Java Kommas zählen

Code:
public static int countChar(String input, char count) {
        int counter = 0;
        int x = 0;
for (int i = 0; i < input.length(); i++) {
                if (input.charAt(i) == count) {
                        counter ++;
                }
        x++;
         }
         return counter;
}
//Ich nehme an, dass in der char-Variable "count" bei Funktionsaufruf das Komma "," hineingesteckt wird, richtig? (Bitte benenne sie dann nicht count... irreführend!)
//Läuft die Schleife überhaupt? Stimmt "x" mit "input.length()" überein?

Hilfreich:
Wie kann man char variablen vergleichen?-Java (Computer, Programm, programmieren)
 
AW: Java Kommas zählen

Java 8 hat übrigens Streams, womit man fein funktional programmierne kann:

Code:
public static long countChar(String haystack, char needle) {
    return haystack.chars().filter(c -> c == needle).count();
}

In Rust übrigens noch kürzer:
Code:
fn count_chars(haystack: &str, needle: char) {
    haystack.chars().filter(|c| c == needle).count()
}

Wahrscheinlich gibts aber auch in allen Sprachen schon dafür direkt ne Funktion irgendwo.
 
AW: Java Kommas zählen

Java 8 hat übrigens Streams, womit man fein funktional programmierne kann:

Code:
public static long countChar(String haystack, char needle) {
    return haystack.chars().filter(c -> c == needle).count();
}

In Rust übrigens noch kürzer:
Code:
fn count_chars(haystack: &str, needle: char) {
    haystack.chars().filter(|c| c == needle).count()
}

Wahrscheinlich gibts aber auch in allen Sprachen schon dafür direkt ne Funktion irgendwo.

Wow danke das sieht deutlich performanter aus als meine Lösung. :daumen:
 
Zurück