Ein Wort einlesen und dann jede Buchstabe ausgeben

  • Themenstarter Themenstarter Jonefen
  • Beginndatum Beginndatum
J

Jonefen

Gast
Hallo ich muss ein Java Programm schreiben das folgendes machen soll:
1.Ein Wort mir 5 Buchstaben einlesen(mit InputDialog)
2. Es soll so augegeben werden:
Eingegebenes Wort: "Hallo"
1. Buchstabe: 'H'
2. Buchstabe: 'a'
3. Buchstabe: 'l'
4. Buchstabe: 'l'
5. Buchstabe: 'o'

Kann mir da jemand helfen?
 
Ja man kann dir helfen , aber nur wenn du zeigst was du bereits hast, und genauer schreibst was gemacht werden soll, einen InputDialog für den Input hast du ja bereits erwähnt, aber wie soll die Ausgabe erfolgen, was ist genau das Problem vor dem du stehst,


auf die einzelenen Zeichen deines Strings kommst du mit String.toCharArray();
 
Das kommt bei mir als Ausgabe
1.Buchstabe h
2.Buchstabe h
3.Buchstabe h
4.Buchstabe h
5.Buchstabe h

So sieht mein Quellcode aus:
Java:
import javax.swing.JOptionPane;
/**
 * Write a description of class buchstaben here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class buchstaben{
    public static void main(String[]args){
        String wort;
        int i=0;
        wort=JOptionPane.showInputDialog(null,"Gib ein Wort mit 5 Buchstaben ein");
        int a=0;
        char zeichen;
        zeichen=wort.charAt(i);
         while(i<5){
            ++a;
             System.out.println(a+".Buchstabe" + zeichen );
            
            ++i;
            
          } 
    }
}
 
Zuletzt bearbeitet von einem Moderator:
lese mit einem buffered reader das wort ein :
Java:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
speichere das worzt in einem string:
Java:
text = input.readLine();

bastel eine for schleife die die länge des wortes prüft (jeden buchstaben durchgeht)
Java:
for(int i = 0;i<text.length();i++) {
benutze die methode CharAt um alle deine Buchstaben zu bekommen
Java:
c = text.charAt(i);
Gib deine Buchstaben aus
Java:
System.out.println("Die Buchstaben lauten: " +c);

EDIT:
Verdammt mal wieder zu spät =)
 
Danke eRaaaa leider funkt es nicht ganz als Ausgabe folgt:
1.BuchstabeH
2.BuchstabeH
3.BuchstabeA
4.BuchstabeL
5.BuchstabeL

@dehlen so weit sind wir in der Schule nicht
 
Ich muss noch eine erwiterte Arbeit von dem machen. So ist die Aufgabenstellung:
Ändere die vorherige Aufgabe so um,dass Texte beliebiger Länge verarbeitet werden, und dabei alle Buchstaben untereinander ausgegeben werden, z.B:

Eingegebener Text: "Auf Wiedersehen"
1. Buchstabe: 'A'
2. Buchstabe: 'u'
3. Buchstabe: 'f'
4. Buchstabe: ' '
5. Buchstabe: 'W'
6. Buchstabe: 'i'
7. Buchstabe: 'e'
8. Buchstabe: 'd'
9. Buchstabe: 'e'
10. Buchstabe: 'r'
11. Buchstabe: 's'
12. Buchstabe: 'e'
13. Buchstabe: 'h'
14. Buchstabe: 'e'
15. Buchstabe: 'n'

Hinweis:
Um dieses Beispiel zu lösen, muss man sich wohl zunächst die Anzahl der Buchstaben berechnen lassen und dann die einzelnen Buchstaben in einer Schleife herausholen.
 
Wo ist dein Problem? dehlen hat dir doch die 3 Zeilen die du brauchst aufgeschrieben, du musst sie eigendlich nur noch untereinander kopieren, und eine abschließende Klammer einfügen.
 
ich hab dir doch ne lösung mit charAt(i) präsentiert und beliebig langen Text kannst du damit auch nehmen verstehe nicht was du willst 😀

Java:
import java.io.*;

public class Aufgabe2 {

public static void main(String[] args) throws IOException {
String text;
char c;

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Geben sie ein Wort ein :");
text = input.readLine();
for(int i = 0;i<text.length();i++) {
c = text.charAt(i);

System.out.println("Die Buchstaben lauten: " +c);
}
}


}


OK dann stelle deine Fragen zum Code ... was verstehst du nicht bzw was hattet ihr noch nicht ?!
 
Zuletzt bearbeitet:
ich hab dir doch ne lösung mit charAt(i) präsentiert und beliebig langen Text kannst du damit auch nehmen verstehe nicht was du willst 😀

Java:
import java.io.*;

public class Aufgabe2 {

public static void main(String[] args) throws IOException {
String text;
char c;

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Geben sie ein Wort ein :");
text = input.readLine();
for(int i = 0;i<text.length();i++) {
c = text.charAt(i);

System.out.println("Die Buchstaben lauten: " +c);
}
}


}


OK dann stelle deine Fragen zum Code ... was verstehst du nicht bzw was hattet ihr noch nicht ?!

Verstehen tue ichs aber wir haben for noch nicht benutzt, input.readLine();, und das Buffer zeugs.

Ich habe eine Lösung aber es kommt eine Fehlermeldung:
Java:
import javax.swing.JOptionPane;
/**
 * Write a description of class buchstabenLang here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class buchstabenLang{
    public static void main(String[]args){
        String wort;
        int i=0, b=0;
        wort=JOptionPane.showInputDialog(null,"Gib ein Wort mit ein");
        b= Integer.parseInt(wort);
        int a=0;
        
        char zeichen;
        zeichen=wort.charAt(i);
        while(b>i){
            ++a;
            zeichen=wort.charAt(i);
            System.out.println(a+".Buchstabe: '" + zeichen +"'" );
            ++i;  
          }//Der Parameter wird jedes mal um 1 erhöt und so werden die Buchstaben nach ihrer Reihenfolge ausgegeben
     }
}

In der Zeile wo b initialisiert wird kommt die Fehlermeldung nach dem Wort eingeben :
java.lang.NumberFormatException
For input string : " Auf Wiedersehen" (in java.lang.NumberFormatException)
 
Zuletzt bearbeitet von einem Moderator:
1. Bitte code-tags
2.
Code:
 b= Integer.parseInt(wort);
--> wort = "Auf Wiedersehen" Wo ist bitte in diesem String ein integer, den du umwandeln kannst, kein wunder das du ne numberformatexception kriegst... ich denke was du vl. machen willst ist: wort.length();

lg
 
Verstehen tue ichs aber wir haben for noch nicht benutzt, input.readLine();, und das Buffer zeugs.
)
ihr hattet schon JOptionPane sprich swing und while Schleifen (siehe dein Lösungsvorschlag) aber noch keine For-Schleifen ?!

Was habt ihr denn für Lehrer

zum Code du kannst keinen String als Integer parsen

EDIT:
Manno -.- seid ihr schnell 😀
 
DAnke an alle hab bisschen wenig nachgedacht hab schon erledigt mit length

Danke an alle beste Java Forum
 
Java:
import javax.swing.JOptionPane;

public class Splitter {

	public static void main(String[] args) {
	String eingabe = JOptionPane.showInputDialog("Eingabe: ");
	
	String[] tokens = eingabe.split("");
	for(String s : tokens)
	   System.out.println(s);
	}
}

So wär der Code nochmal ein bisschen kürzer 🙂
 
Java:
import javax.swing.JOptionPane;

public class beispiel{
    public static void main(String[]args){
        String wort;
        int i=0;
        wort=JOptionPane.showInputDialog(null,"Gib ein Wort mit 5 Buchstaben ein");
        int a=0;
        char zeichen;
         while(i<5){
            ++a;
            zeichen=wort.charAt(i);
             System.out.println(a+".Buchstabe: " + zeichen );
            
            ++i;
            
          } 
    }
}

Also bei mir Funktioniert es so 🙂
 
Java:
import javax.swing.JOptionPane;
	public static void main(String[] args) {
	String eingabe = JOptionPane.showInputDialog("Eingabe: ");
	
	String[] tokens = eingabe.split("");
	for(String s : tokens)
	   System.out.println(s);
	}

So wär der Code nochmal ein bisschen kürzer 🙂

Ganz viele Strings erzeugen?

Java:
        String eingabe = JOptionPane.showInputDialog("Eingabe: ");
        
        for (char c : eingabe.toCharArray()) {
            System.out.println(c); 
        }
edit: nagut, syso erzeut dann ja auch wieder strings...
 

Zurück
Oben