myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Java] Länge eines Arrays (https://mygully.com/showthread.php?t=2076993)

Mint 13.07.10 19:37

[Java] Länge eines Arrays
 
Hi Leute,

Ich bin im Moment dabei ein kleines Programm zu schreiben, hänge allerdings gerade an einer Stelle. Es handelt sich um folgenden Code-Ausschnitt:
Code:

StringBuilder[] token_container = new StringBuilder[500];
while(st.hasMoreTokens()) {
                int i = 0;
                token_container[i].append(st.nextToken());
                i++;
        }
        //System.out.println(token_container.length);

Nun möchte ich gerne die Länge des Arrays herausfinden, allerdings nicht die insgesamte (wurde ja in der ersten Zeile mit 500 initialisiert und wäre mit der .length Methode realisierbar) sondern die die aktuell verwendet wird. Gut wäre wenn ich auf die Variable i der while Schleife zugreifen könnte, außerhalb der Schleife gilt sie aber hatl nicht mehr!

Ich hoffe ihr könnt mir helfen,
mfg, Mint.

P.S: Jetzt wollte ich hinter den BB-Code doch glatt ein Semikolon setzen....:D

haze303 13.07.10 21:36

Ich programmiere leider kein Java, aber dafür C und deshalb kann ich den Syntax relativ klar lesen und würde dir gerne etwas vorschlagen, was z.B. mit C machbar wäre und sich eventuell "1 zu 1" auf Java übertragen lässt.

Ist es möglich, dass du eine eigene Funktion programmierst, die du aus der while-Schleife heraus aufrufst und dort einen Zähler mit zählen lässt, welcher sich nach dem Durchlauf der while-Schleife einfach abfragen lässt?

Ich hoffe, ich konnte wenigstens einen Denkanstoß liefern. ;)

Viele Grüße,
haze303

PoTaPi4 14.07.10 01:31

hallöle wie wär es einfach mit
Code:

StringBuilder[] token_container = new StringBuilder[500];
int i = 0;
while(st.hasMoreTokens()) {
                token_container[i].append(st.nextToken());
                i++;
        }
        //System.out.println(token_container.length);

mfg PoTaPi4

Mint 14.07.10 11:21

Danke Jungs (oder Mädels??)!!

@haze303: Etwas ähnliches hab ich auch schon überlegt, aber potapi4's Lösung ist einfacher!

thx, Mint.

haze303 14.07.10 11:37

Richtig, daran habe ich nicht gedacht. Die Zähler-Variable ausserhalb der while-Schleife zu initialisieren, ist natürlich einfacher.
Ich denke manchmal einfach zu kompliziert. ;)

Viele Grüße,
haze303

Mint 14.07.10 11:44

Beitrag editiert, die Exception bin ich losgeworden.
Jetzt habe ich aber das Problem dass in ein String Array irgendwie alle Einträge "null" sind:
Code:

String[] token_container = new String[500];
        System.out.println(token_container[0]);  //Ausgabe: null 
        System.out.println(token_container[1]);  //Ausgabe null, und so weiter....

Bei der StringBuilder klasse gab es keine probleme, musste jedoch auf String umsteigen da die Integer.parseint mit Stringbuilder nicht klarkam -.-

Hoffe ihr könnt mir nochmal helfen,

mfg, Mint.

PoTaPi4 14.07.10 13:40

schreibst du werte in dein array bevor du es ausgibst ?

WerniCH 18.07.10 13:15

vielleicht hab ich das nun falsch verstanden, aber wenn du einen parseint machst, müsste doch der array nachher auch ein int array sein oder?

WichsHure 14.08.10 20:54

Zitat:

Zitat von Mint (Beitrag 20985413)
Beitrag editiert, die Exception bin ich losgeworden.
Jetzt habe ich aber das Problem dass in ein String Array irgendwie alle Einträge "null" sind:
Code:

String[] token_container = new String[500];
        System.out.println(token_container[0]);  //Ausgabe: null 
        System.out.println(token_container[1]);  //Ausgabe null, und so weiter....

Bei der StringBuilder klasse gab es keine probleme, musste jedoch auf String umsteigen da die Integer.parseint mit Stringbuilder nicht klarkam -.-

Hoffe ihr könnt mir nochmal helfen,

mfg, Mint.

Hi,

irgendwie ziemlich brutal was Du da programmierst...

Wie es aussieht fehlt Dir grundlegendes Wissen. Ich meinte nicht bzgl. Java sondern allgemein.

Aber ein Tipp: Versuchs mal mit der Klasse "ArrayList"... einfacher zu handhaben.
Allerdings wirst Du mit Deinem Programmierstil und dem Unwissen auf noch größere Probleme stossen...

Hasenpriester 15.08.10 21:21

Das erste Beispiel konnte auch garnicht funktionieren weil du immer nur das erste Element überschrieben hast :p

So könnte z.B. ein Ansatz aussehen:
Code:

List<String> token_container = new LinkedList<String>();
while(st.hasMoreTokens()) {
        token_container.add(st.nextToken());
}

System.out.println("Number of Elements: " + token_container.size());
for(String token: token_container) {
        System.out.println(token);
}


meister.propper1 17.08.10 06:22

Da gibts mehrere Möglichkeiten

z.B.:
Code:

int anzahl = st.countTokens();
String[] token_container = new String[ anzahl ];
int i = 0;
while(st.hasMoreTokens()) {
                token_container[ i++ ] = st.nextToken();
}

oder z.B.:

Code:

List<String> list = new LinkedList<String>();
while(st.hasMoreTokens()) {
    list.add( st.nextToken() );
}
String[] token_container = (String[])list.toArray( new String[ list.size() ] );



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.