# Zeichenkette erstellen mit Aufgabenstellung!



## David123 (20. Apr 2017)

Guten Tag, 
Ich steh vor folgender Aufgabe und  hab einfach keine Ahnung.

 
dies sollten wir wenn möglich mit einer Schleife erstellen.
ich hoffe ihr könnt mir weiter helfen!

mfg David


----------



## VfL_Freak (20. Apr 2017)

Moin,

Poste einfach mal Deinen bisherigen Ansatz und stell dann konkrete Fragen dazu 
http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html

Gruß Klaus


----------



## David123 (21. Apr 2017)

hier mein bisheriger Ansatz:
 ist dieser so richtig? 
bzw. ich brauche tipps bei meinem nächsten vorgehen.


----------



## VfL_Freak (21. Apr 2017)

Moin,
bitte poste den Code nicht als ScreenShot, sondern in Code-Tags !!!
So läßt sich nichts zitieren !!

(a) Welche Warning kommt den in Zeile 8 ??
(b) Du schließt das Scanner-Objekt nicht !!

So, Du kannst ein Wort eingeben und kennst nun die jeweilige Anzahl an Groß- und Kleinbuchstaben ... 

Jetzt soll ein weiteres Zeichen eingebbar sein und sein Vorkommen in 'wort' gezählt werden ...
Woran genau scheiterst Du dabei ??

Gruß Klaus

EDIT: hier mal ein vlt. hilfreicher Link https://javabeginners.de/Ein-_und_Ausgabe/Scanner.php


----------



## Jardcore (21. Apr 2017)

Du vergisst das du irgendwie auch Zähler brauchst. Hier für die Nachwelt mal der Code in Tags mit ein paar Änderungen

```
public class Zeichenkette {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int anzahlBuchstabenGross = 0;
        int anzahlBuchstabenKlein = 0;
    
        System.out.println("Bitte geben Sie ein Wort ein: ");

        String wort = scan.next();
        scan.close();
    
        for(int i = 0; i < wort.lenght(); i++) {
            if(Character.isUpperCase(wort.charAt(i))) {
                anzahlBuchstabenGross++;
            } else {
                anzahlBuchstabenKlein++;
            }
        }
    
        System.out.println(
            String.format("Das Wort: %s hat %d große Buchstaben und %d kleine Buchstaben",
                wort, anzahlBuchstabenGross, anzahlBuchstabenKlein)); 
    }
}
```

Hier wird in einer Schleife geprüft ob der aktuelle Buchstabe an der Position i Groß ist, wenn ja, wird die Variable "anzahlBuchstabenGross" um 1 erhöht. Wenn nein, dann wird die Variable "anzahlBuchstabenKlein" um 1 erhöht.


----------



## VfL_Freak (21. Apr 2017)

Stimmt, das war mir nicht aufgefallen 

BTW: sowas

```
for( int i = 0; i < IRGENDWAS, i++ )
{
    // tue irgendwas
    i++;
}
```
ist natürlich meistens tödlich!
Du solltest NIE die Schleifenvariable innerhalb der Schleife manipulieren !!!

Gruß Klaus


----------



## David123 (21. Apr 2017)

vielen dank für euere Hilfe!
ist dies auch noch mit erkennung von Zahlen möglich?
z.B. ich gebe das Wort: "698Hallo21" ein und erkennt wieviel Zahlen,Klein - und Großbuchstaben.


----------



## VfL_Freak (21. Apr 2017)

probiere es doch einfach mal aus


----------



## David123 (21. Apr 2017)

wieso funktioniert dies so nicht?


```
import java.util.Scanner;

public class Zeichenkette
{

    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
          int anzahlBuchstabenGross = 0;
          int anzahlBuchstabenKlein = 0;
          int anzahlZahlen = 0;
      
          System.out.println("Bitte geben Sie ein Wort ein: ");
          String wort = scan.next();
          System.out.println("Buchstaben insgesamt: "+ wort.length());
          scan.close();
      
          for(int i = 0; i < wort.length(); i++)
          {
              if(Character.isUpperCase(wort.charAt(i)))
              {
                  anzahlBuchstabenGross++;
              }
              else if (Character.isLowerCase(wort.charAt(i)))
              {
                  anzahlBuchstabenKlein++;
              }
              else
              {
                  anzahlZahlen++;
              }
           }
      
            System.out.printf("Das Wort: %s hat %d große Buchstaben und %d kleine Buchstaben und %d Zahlen",
            wort, anzahlBuchstabenGross, anzahlBuchstabenKlein);
    }

}
```


----------



## Flown (21. Apr 2017)

Was funktioniert denn nicht?


----------



## David123 (21. Apr 2017)

das die Anzahl der Zahlen ausgegeben werden!
folgender Fehler wird gemeldet:


----------



## Flown (21. Apr 2017)

Es steht auch das für einen Platzhalter ein Argument fehlt. Sollte auch so aussehen:

```
System.out.printf("Das Wort: %s hat %d große Buchstaben und %d kleine Buchstaben und %d Zahlen", wort,
    anzahlBuchstabenGross, anzahlBuchstabenKlein, anzahlZahlen);
```


----------



## Jardcore (21. Apr 2017)

In "28Hallo" sehe ich auch keine zwei Großbuchstaben


----------



## David123 (21. Apr 2017)

@hardcore schau genau hin, habe es so eingegeben "28HalLo"
super, vielen lieben dank euch!


----------



## Jardcore (24. Apr 2017)

Wer ist eigentlich dieser @hardcore XD


----------

