# Bestimmte Zeichen aus Strings zählen



## Nady1990 (14. Dez 2010)

Hallo,

wie kann man gleiche, nicht zusammenhängende Zeichen aus
einem String ziehen?


----------



## Gast2 (14. Dez 2010)

String (Java 2 Platform SE v1.4.2)

Damit!
Bei ner etwas ausführlicheren Frage gibts auch ne bessere Antwort


----------



## Nady1990 (14. Dez 2010)

ich muss in einer Aufgabe eine von benutzer eingegebenem string die ersten in reihe eingegebenen '|'  zaelen
zum beispiel "abe |||| huhu ||"
dafür muss dann rauskommen 4


----------



## Gast2 (14. Dez 2010)

Joa dann mit ner schleife über den String laufen und per String#charAt das jeweilige Zeichen prüfen, nen counter dabei und fertig


----------



## ARadauer (14. Dez 2010)

Ja? Was ist die Frage oder willst du die fertige Java Lösung?

Wie geht es allgemein?
Du suchst den ersten, 
 zählst
 nächster der gleiche... du zählst usw...
 nächster nicht mehr der gleiche, du schaust ob die akutlle anzahl größer ist als dein maximum
   wenn ja dann ist das jetzt dein maximum..

du suchst dir den nächsten... und von vorne...


----------



## Nady1990 (14. Dez 2010)

also die aufgabe ist folgende

Unary.java Schreiben Sie ein Java-Programm, welches in einer als Kommandozeilenparameter
übergebenen Zeichenreihe die erste darin enthaltene Unärzahl sucht und als Dezimalzahl
ausgibt. Beispiele:

//Aufruf: java Unary "|||||"
Zahl: 5
// Aufruf: java Unary "abc||| pp|j k||||"
Zahl: 3
//java Unary "abc fg"
Zahl: 0


----------



## Gast2 (14. Dez 2010)

Ok, und wo genau hast du jetzt Probleme?


----------



## Nady1990 (14. Dez 2010)

```
class Unary{
public static void main(String[] args){
String zahl;
zahl=read.line();
}
}
```
 weiter komme ich iwie net
ich hab kp wie ich die '|' zeichen finden soll die in der ersten kette liegen wei man könnte ja auch als eingabe auch 
"so was sch || reiben |||"
ich brauche aber nur die erste kette


----------



## Gast2 (14. Dez 2010)

Und das ist auch schonmal nicht ganz richtig.
Die eingabe soll ja nicht vom User erfolgen sondern aus den Argumenten gelesen werden die beim start übergeben werden.


```
class Unary{
     public static void main(String[] args){
        String input = args[0];
        // hier dann mit input weiterarbeiten    
    }
}
```
auf dem input kannst du dann weiterarbeiten. schau dir die String Klasse an, insbesondere die charAt Methode, damit solltest du dann schonmal nen ganzes stück weiterkommen.


----------



## ARadauer (14. Dez 2010)

Nady1990 hat gesagt.:


> weiter komme ich iwie net


String (Java 2 Platform SE v1.4.2)

indexOf Methode könnte helfen...


----------



## trez (15. Dez 2010)

Ich hab das mal spasseshalber implementiert.

Eine for-schleife über den String (toCharArray) und wenn fertig gezählt wurde breche ich die Schleife mit break ab.
Irgendwie erinnert mich das ein wenig an goto - ist es in Java "good practice" so eine Schleife abzubrechen oder setzt ihr lieber einen boolean und wertet den in der for-Schleife aus?

--
hm, es dauerte mindestens so lange, diesen Text zu schreiben, wie das Problem zu lösen, dabei meinte ich noch vor einem Monat es heisse Tschawa


----------



## Andi_CH (15. Dez 2010)

Ich vermeide breaks (aussert bei switch natürlich)

Für mich hat eine Schleifen einen einzigen Ort an dem sie abbricht (bei for im Header), genau wie eine Funktion ein einziges return statement hat.

Na ja, soweit die Regeln welche bekanntlich durch irgend etwas bestätigt werden


----------

