[JAVA] Array Länge nicht definieren

  • #1
J

JediMB

Bekanntes Mitglied
Themenersteller
Dabei seit
04.04.2003
Beiträge
244
Reaktionspunkte
0
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
PCDReitz schrieb:
a) du zählst die Anzahl der Stellen der Zahl, indem du in einer while schleife die Zahl solange durch 10 teilst bis sie 0 ist.

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:


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

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
 
Thema:

[JAVA] Array Länge nicht definieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben