# Zeichenketten zählen



## Terence86 (24. Nov 2016)

Hallo, habe ein kleines Problem. Wenn ich die Methode *einzeln* teste klappts, aber wenn ich mehrere sachen in die main schreibe bekomme ich das falsche Ergebnis.

```
public class Eingabe {

    public static int anzahlString(String s) {
        Scanner sc = new Scanner(System.in);
        int counter = 0;

        while (sc.hasNext()) {

            if (sc.next().equals(s) | s.equals("")) {  // ist hier was falsch?
                counter++;
            }
        
        
        

        }
        sc.close();
        return counter;
    }

    public static void main(String[] args) {
        System.out.println(Eingabe.anzahlString(""));
        System.out.println(Eingabe.anzahlString("Fliegen"));
// Einzeln funktioniert es, aber beide zusammen nicht.
//Beispiel Eingabe war "Wenn vor Fliegen Fliegen fliegen, fliegen Fliegen Fliegen nach."
// Ausgabe ist : 9 und dann 0. Sollte aber 9 und 4 sein.

    
    }
}
```

Kurze Erläuterung: Der Methode wird ein String s übergeben der zum einen die Wörter zählen soll die s entesprechen, und bei ("") alle Wörter zählen soll.
Kurze Erklärung was falsch ist wäre hilfreich. (PS: Eingabeende (EOF) Ctrl + d (UNIX) und sonst glaub ich Ctrl + z bei Ms-Dos.


----------



## Joose (24. Nov 2016)

```
if (sc.next().equals(s) | s.equals("")) {  // ist hier was falsch?
```
Du willst einen normalen oder-Vergleich haben nehme ich an 
Dann solltest du `||` verwenden. Du verwendest ein bitweises Oder, siehe http://openbook.rheinwerk-verlag.de/javainsel/javainsel_18_001.html


----------



## JCODA (24. Nov 2016)

Joose hat gesagt.:


> ```
> if (sc.next().equals(s) | s.equals("")) {  // ist hier was falsch?
> ```
> Du willst einen normalen oder-Vergleich haben nehme ich an
> Dann solltest du `||` verwenden. Du verwendest ein bitweises Oder, siehe http://openbook.rheinwerk-verlag.de/javainsel/javainsel_18_001.html


Das stimmt leider nicht, | ist zwar ein Bit-oder, aber auch ein Boolean-oder, es macht einfach keine Shortcuts wie ||, 
siehe https://users.drew.edu/bburd/JavaForDummies4/ShortCircuitEval.pdf


----------



## Terence86 (24. Nov 2016)

Also mit || bekomme ich den ersten Wert wieder richtig, aber der 2te ist auch wiederum 0.
Das selbe wenn ich in der Main die beiden Vertausche erste richtig, 2te kommt 0.


----------

