String zerlegen in einzelne Buchstaben (char)??

  • Themenstarter Themenstarter Holmes
  • Beginndatum Beginndatum
H

Holmes

Gast
Ich versuche in einem Automat mit BlueJ (Lachautomat) den eingegebenen String, der mit [wort] bezeichnet wird, also z.B. "haha!" in die einzelnen Buchstaben aufzuteilen, sie anzeigen zu lassen, und danach prüfen zu lassen, ob das eingegebene Wort die Anforderungen erfüllt: das Wort muss so gegliedert sein: "ha{ha}!" ( {...}= bedeutet beliebig oft verwendet, hier z.B. "hahahahaha!").
Leider zeigt er bei mir in der 'for'-Zeile den Fehler
"java.lang.NullPointerException
at Wortverarbeitung.string_zerlegen(Wortverarbeitung.java:17)"
an, ich weiß nicht warum!

Das halbfertige Programm ist hier:
Java:
public class Wortverarbeitung
{
  int x;
  String wort;
 
        public Wortverarbeitung(String wort)
        {
            System.out.println("_________________________________________________");
            System.out.println("Das Wort/Der Satz heißt " + wort);
            System.out.println("Das Wort/Der Satz hat " + wort.length() + " Zeichen");
            System.out.println("Das erste Zeichen ist " + wort.charAt(0));
            System.out.println("Das letzte Zeichen ist " + wort.charAt(wort.length()-1));
        }     
        
        void string_zerlegen()
        {
         for (x=0;x<wort.length();x=x+1)
          {
           System.out.println(wort.charAt(x));  
          }
            
        }

        void anfang ()
        {
            if (wort.startsWith("ha"))
            {
                System.out.println("richtig");
            }
            else
            {
                System.out.println("falsch");
            }
        }
         
        void ende ()
        {
            if (wort.endsWith("ha!"))
            {
                System.out.println("richtig");
            }
            else
            {
                System.out.println("falsch");
            }
        }
        
        void test ()
        {
          for (int x = 0; x<=wort.length();x=x+2)
          {
           char n = wort.charAt(0);
           if (n == 'h')
           {
               System.out.println("gut gelacht");
            }
            else
            {
                System.out.println("Schlecht!");
            }
           
          }
           
        }
        
            

}

die betreffenden Zeilen hier:
Java:
 void string_zerlegen()
        {
         for (x=0;x<wort.length();x=x+1)
          {
           System.out.println(wort.charAt(x));  
          }
            
        }
und:
Java:
 void test ()
        {
          for (int x = 0; x<=wort.length();x=x+2)
          {
           char n = wort.charAt(0);

Kann mir da jemand helfen?

Schon einmal danke im Voraus!
 
Hi,

du musst deiner Instanzvariable "wort" auch das zuweisen was du im Konstrutkor übergibst:

Java:
public Wortverarbeitung(String wort) {
    this.wort = wort;

Ansonsten bleibt die Instanzvariable "wort" mit dem Standardwert initialisiert, und der ist null. Daher auch
die NPE.
 
Hi,

du musst deiner Instanzvariable "wort" auch das zuweisen was du im Konstrutkor übergibst:

Java:
public Wortverarbeitung(String wort) {
    this.wort = wort;

Ansonsten bleibt die Instanzvariable "wort" mit dem Standardwert initialisiert, und der ist null. Daher auch
die NPE.

Vielen Dank, das war genau das, was noch gefehlt hat, ich habe den Automaten fertigstellen können!
Komisch nur, das es vorher auch ohne "this" funktioniert hat!
Vielen Dank natürlich auch an die anderen Antworten, ich hätte nicht gedacht, dass ich so schnell ein Feedback bekomme!

Wirklich ein klasse Forum!
 

Zurück
Oben