# Java Kommas zählen



## xActionx (8. Oktober 2015)

*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:


```
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


----------



## HanZ4000 (8. Oktober 2015)

*AW: Java Kommas zählen*


```
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)


----------



## Crysis nerd (9. Oktober 2015)

*AW: Java Kommas zählen*

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


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

In Rust übrigens noch kürzer:

```
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.


----------



## xActionx (10. Oktober 2015)

*AW: Java Kommas zählen*



Crysis nerd schrieb:


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



Wow danke das sieht deutlich performanter aus als meine Lösung.


----------

