Array-Programm

F

flower555

Neues Mitglied
Ich soll ein Notizzettelprogramm erstellen, dass folgende Eigenschaften haben soll:
Aufgabenstellung
In dieser Aufgabe soll ein Teil eines Notizzettel-Programms gestaltet werden. Konkret sollen Sie eine Klasse entwerfen, die die Verwaltung der Liste der Notizenbeinhaltet.

Spezifikation
Ihre Klasse soll dabei die Liste der Notizen speichern, und verschiedene Informationen darüber ermitteln. Gehen Sie dazu wie folgt vor:

  • Erstellen Sie in der gegebenen Datei eine neue öffentliche Klasse NotizAnzeige.
  • Ergänzen Sie die Klasse um ein privates Feld, dass ein Array der Größe 10 mit Strings speichert. Dieses Feld soll die Liste der Notizen (jeder Stringrepräsentiert eine Notiz) repräsentieren.
  • Fügen Sie weiterhin ein Feld hinzu, dass speichert, wieviele Einträge des Arrays bereits befüllt sind.
  • Implementieren Sie die Methode speichereNotiz in der Klasse NotizAnzeige, die einen String als Argument erhält.
    • Sind bereits 10 oder mehr Notizen vorhanden, soll die neue Notiz nicht gespeichert werden.
    • Ansonsten soll sie in die erste, freie Position des Arrays eingefügt werden. Achten Sie darauf, sowohl das Array als auch das Feld, das die Anzahl Einträge speichert, zu verändern!
  • Implementieren Sie die Methode zeigeNotizen in der Klasse NotizAnzeige, die die Liste der Notizen anzeigt. Sie soll die Notizen in der gespeicherten Reihenfolge, mit je einem Zeilenumbruch nach jeder Notiz, auf der Console ausgeben. Nutzen Sie dafür System.out.println().

  • Implementieren Sie die Methode loescheAlle in der Klasse NotizAnzeige, die alle Notizen löscht. Setzen Sie dazu z.B. den Anzahlzähler auf 0 zurück.

  • Ergänzen Sie die Klasse NotizAnzeige um die folgenen Methoden, die die Anzeige der Notizen vereinfachen:
    • int getAnzahl()ermittelt die Anzahl der gespeicherten Notizen und gibt sie zurück.
    • int getLaenge(int i)ermittelt die Länge der Notiz an Stelle i (bei 0 beginnend), also die Anzahl Zeichen der Notiz. Nutzen Sie dafür die Methode lengthder Klasse String.
    • boolean istSortiert(int i)prüft, ob die Notiz an Stelle iweniger Zeichen als die Notiz an Stelle i+1 hat. Es kann sinnvoll sein, dafür die vorige Methode getLaenge zu nutzen.
    • boolean alleSortiert()prüft für alle Notizen außer der letzten, ob sie weniger Zeichen als die folgende Notiz hat. Sie gibt also genau dann truezurück, wenn istSortiert()für die Notizen an Stellen 0 bis getAnzahl() - 1true ist.
Hinweise zur Bearbeitung
  • Ihr Programm brauch keine main-Methode enthalten! Die VPL-Aufgabe ruft direkt Ihre neu definierte Klasse auf.
  • Um das Element eines Arrays mit dem Namen arr an Stelle n zu erhalten, schreiben Sie arr[n].
  • Verwenden Sie für Ausgaben die Anweisung System.out.println(...);.
  • Speichern () Sie Ihre Lösung, und reichen Sie sie zur Bewertung ein ( 0).
Leider kommt es bei mir zu einer Null-Pointer Exception, die ich nicht beheben kann. Vielen Dank

Java:
  public class NotizAnzeige {
    
     private String[] ListeNotizen = new String[10];
    
     public int AnzahlEintraege ; //evt array
    
    
    
      public String speichereNotiz(String a){
        
        
          if ( AnzahlEintraege == 10){ //evt .elnth
              return null;
            
          } else{
              boolean saved = false;
              for (int i=0; i<ListeNotizen.length; i++) {
      
                  if (ListeNotizen[I] == "0"){ // evt auch null
                 
                      ListeNotizen[I]=a;
                      saved = true;
                     break;
                  } 
              }return a;
             
             
             
            } 
       }
         
          public String[] zeigeNotizen(){
          for(int i=0; i<= ListeNotizen.length-1;++i){
              System.out.println(ListeNotizen[I]);
          }return null;
          }
         
          public String[] loescheAlle(){
             AnzahlEintraege=0;
             
             
          return null;
          }
         public int getLaenge(int i){
           if(ListeNotizen[I].length() !=0){
             return ListeNotizen[I].length();
           } else return 0;
         }
         
         public int getAnzahl(){
            return AnzahlEintraege;  //evt .length
         } 
         
         
         
          public boolean istSortiert(int i){
             
                  if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){
           
                 
                     return true; 
                  }else {
                     return false;
                  }
         }  
         
          public boolean alleSortiert() {
              for(int i=0; i< ListeNotizen.length-1; ++i){
                  // for (int j = i+1; j < ListeNotizen.length; j++){
                      if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){
                      return true;
                      }     else {
                            return false;
                            }
                //  } 
              }return true;
          }
     
     
     
 
     
     
     
     
  }
[/I][/I][/I][/I][/I][/I][/I]
 
Zuletzt bearbeitet:
Robat

Robat

Top Contributor
Poste dein Code nächstes mal bitte in Code-Tags [code=Java]Your Code[/code] .. so wie du es jetzt hast verschluckt das Forum alle [i] und macht den Text kursiv.
An welcher Stelle kommt die NullPointerException denn?
Java:
public String[] zeigeNotizen() {.. }
Warum sollte diese Methode in String[] zurückgeben? In der Aufgabe steht davon nichts.
 
S

Senftube

Aktives Mitglied
null ist quasi "nicht vorhanderer, nicht definierter Speicher" und was ganz anderes als "0" oder "".
if (ListeNotizen == "0")
Damit greift zu auf einen null pointer zu, wenn die notiz noch nicht existiert und prüfts ob dort der
(noch nicht existierende string "0" ist.

Stell dir vor das bei private String[] listeNotizen = new String[10];
folgendes automatisch passiert: for (int i=0i< 10;i++) listeNotizen = null

PS: Methodennamen immer mit kleinbuchstaben beginnen lassen nur Klassennamen beginnen mit Grossbuchstaben

Hier die Lösung (nicht getestet, versuch das zu verstehen, nicht einfach abschreiben :)):
Java:
public class NotizAnzeige 
{
     private String[] listeNotizen = new String[10]; // die elemente sind erstmnal alle null
     private int anzahlEintraege ; //
   
   
   
 /**
 * @param a Note to be stred in a free array element
 * @return null if a cannot be stored
 */
public String speichereNotiz(String a)
 {     
      if (anzahlEintraege == 10) //evt .elnth
          return null;
       
       
       for (int i=0; i<listeNotizen.length; i++)
       {
           if (listeNotizen[i] == null) // evt auch null ist was ganz anderes als "0"
           {
              listeNotizen[i]=a;
              anzahlEintraege++;
              return a;
           }
      }
      return null;
} // end of speichereNotiz
         
public void zeigeNotizen()
{
  for(String s : listeNotizen)  System.out.println(s);
}
         
public void loescheAlle()
{
   for (int i=0;i < 10;i++) listeNotizen[i] = null;
     anzahlEintraege=0;
} //--- end of  loescheAlle()       
         

public int getLaenge(int i)
{
   if (i >= 0 && i < 10)
    { if (listeNotizen[i] != null) return listeNotizen[i].length();
    }
   return 0;
} //--- end of getLaenge()       
         
public int getAnzahl()   { return anzahlEintraege;  }
         
         
         
public boolean istSortiert(int i)
{
     if (i < 0 || i >= 9) return false; // 9 weil man ja auf das 9.auch zugreifen muss
     
     int len1=0,len2=0;
     if (listeNotizen[i] != null) len1 = listeNotizen[i].length();
     if (listeNotizen[i+1] != null) len2 = listeNotizen[i+1].length();
     if (len1 < len2) return true;
     return false;
} //---- end of istSortiert()
         
public boolean alleSortiert()
{
      for(int i=0;i < getAnzahl()-1;i++)
      {
         if (listeNotizen[i] == null) continue;
         if (istSortiert(i) == false) return false;
      }
      return true;
}
[/java]

} //------------------- end of class
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Dein Array hat ja nicht zu jedem Zeitpunkt einen String an jeder Position. Entweder du änderst dein Array so, dass leere Notizen Leerstrings sind, oder du überprüfst den Inhalt deiner ArrayPosition auf null bevor du versuchst die Länge eines null Objektes abzufragen.
 
S

Senftube

Aktives Mitglied
...es solte heissen:

folgendes automatisch passiert: for (int i=0;i< 10;i++) listeNotizen = null
 
S

Senftube

Aktives Mitglied
Sorry @flower555.. schon wieder falsch ....es solte heissen:

folgendes automatisch passiert:
Java:
for (int i=0;i< 10;i++) listeNotizen[I][I][i] = null;
[/I][/I]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
L Problem mit Array Programm Java Basics - Anfänger-Themen 2
M globales Array erst mittem im Programm erstellen Java Basics - Anfänger-Themen 14
J Programm mit Array Java Basics - Anfänger-Themen 5
L Erste Schritte Fehlermeldung bei Array-Programm Java Basics - Anfänger-Themen 4
V Per Array Programm öffnen Java Basics - Anfänger-Themen 32
T Frage zu einem kleinen programm mit array's Java Basics - Anfänger-Themen 8
G Array Rückgabe aus Programm Java Basics - Anfänger-Themen 6
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 12
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
OZAN86 Mehrdimensionales Array Java Basics - Anfänger-Themen 4
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
Zeppi Vergleich von Array-Inhalten Java Basics - Anfänger-Themen 14
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
O 2d Array einmal Eins Java Basics - Anfänger-Themen 2
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
J null exception Array Java Basics - Anfänger-Themen 5
H Array Elemente Java Basics - Anfänger-Themen 17
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
O System.out array Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben