[JAVA] Array Länge nicht definieren

Dieses Thema [JAVA] Array Länge nicht definieren im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von JediMB, 19. Nov. 2003.

Thema: [JAVA] Array Länge nicht definieren Hallo zusammen! Ich versuche mich weiter fleißig an JAVA und habe nun stolz mein BubbleSort Programm zum laufen...

  1. Hallo zusammen!

    Ich versuche mich weiter fleißig an JAVA und habe nun stolz mein BubbleSort Programm zum laufen gebracht - jedoch erst mit Einschränkungen.

    Das Programm tut folgendes:

    - es nimmt sich eine INTEGER Zahl, z.B. 5-stellig: 27143
    - es zerlegt diese Zahl in einen Array
    - dann sortiert es den Array aufsteigend
    - der sortierte Array wird zu einer INT Zahl zusammen gesetzt und Ausgegeben: 12347

    So. Jetzt mein Problem:

    das ganze funktioniert nur, wenn ich die Anzahl der Stellen der Integer Zahl angebe, weil sonst der Ziffern-Array nicht definiert bzw. nicht initialisiert werden kann.

    Die Funktion, die sich um die Zerlegung kümmer sieht so aus:
    Code:
    public static int [] Aufteilen( int nzZahl ) {
      //* Funktion teilt eine übergebene INT Zahl (nzZahl) in einen Ziffern Array auf (nZahlen) und gibt diesen zurück.
    (Die Länge der INT Zahl ist eine globale Konstante: nStellen) *//
      
      int nZahlen[] = new int[nStellen];
      int nLaenge = nZahlen.length - 1;
    
      // Initialisierung des nZahlen Arrays (jeweils mit 0)
      for ( int i = 0; i <= (nLaenge); i++) {
        nZahlen[i] = 0;
      }
      // Ende der Initialisierung
    
      // Aufteilung
      do {
     nZahlen[nLaenge] = (nzZahl % 10);
      nzZahl /= 10;
    nLaenge--;
      } while (nzZahl != 0);
      // Ende der Aufteilung
    
    return nZahlen;
    }
    Hat jemand einen Tipp oder Lösungsansatz, wie man das umgehen könnte? :eek:

    Oder ist das schlicht weg nicht möglich?? :-\

    MfG 8)

    P.S.: Die Frage, warum man ein solches Programm schreiben sollte ist sicherlich ein Diskussionspunkt, aber es ist halt einfach eine Aufgabe meiner Programmierungs Vorlesung gewesen (da aber in C) und ich habe sie dann mal versucht, auf JAVA zu übertragen. Man lernt ja doch ganz gut dabei...
     
  2. Hi

    a) du zählst du Anzahl der Stellen der Zahl, indem du in einer while schleife die Zahl solange durch 10 teilst bis sie 0 ist.

    b) du nimmst statt einem Array einen Vector, da braucht man die Größe nicht definieren.

    Gruß, Michael
     
  3. könntest es auch so machen.... die Anzahl der Ziffern in der Zahl wird dynamisch ermittelt

    ersetze
    Code:
    int nZahlen[] = new int[nStellen];
    duch
    Code:
    int nZahlen[] = new int[(new String(nzZahl+)).length()];
    dann brauchst du die Variable nStellen auch gar nicht, und du kannst ein INT mit beliebiger Anzahl von Ziffern angeben...


    Greetz
     
  4. Das mache ich ja schon, aber der Array muß ja vorher initialisiert sein, also brauche ich die Länge schon vorher... Und die Schleife ein mal zur Initialisierung zu durchlaufen und erst beim zweiten mal zu füllen ist recht unelegant, wie ich finde... :eek:


    Hm, Vectoren kenne ich in Java noch nicht.... :(

    Aber trotzdem Danke für Deine Hilfe!


    @Michael_B:
    Das finde ich klasse... und es funktioniert sogar! ;)

    Danke!

    MfG
     
Die Seite wird geladen...

[JAVA] Array Länge nicht definieren - Ähnliche Themen

Forum Datum
php Array mit Rijndael verschlüsseln Windows XP Forum 22. Nov. 2013
HP Smart Array e200 Windows XP Forum 10. Juli 2009
Prozessoewechsel / & Raidarray umbauen Hardware 24. Nov. 2007
wert eines arrays über den index eines kombinationsfeldes abfragen Webentwicklung, Hosting & Programmierung 14. Nov. 2007
keine ausgabe eines arrays Windows XP Forum 18. Feb. 2007