myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[Java] Länge eines Arrays

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 13.07.10, 19:37   #1
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard [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....
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.

Mint ist offline   Mit Zitat antworten
Ungelesen 13.07.10, 21:36   #2
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

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
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 14.07.10, 01:31   #3
PoTaPi4
Anfänger
 
Registriert seit: Jul 2010
Beiträge: 5
Bedankt: 32
PoTaPi4 ist noch neu hier! | 0 Respekt Punkte
Standard

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
PoTaPi4 ist offline   Mit Zitat antworten
Ungelesen 14.07.10, 11:21   #4
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard

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

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

thx, Mint.
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.

Mint ist offline   Mit Zitat antworten
Ungelesen 14.07.10, 11:37   #5
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

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
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 14.07.10, 11:44   #6
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard

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.
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.

Mint ist offline   Mit Zitat antworten
Ungelesen 14.07.10, 13:40   #7
PoTaPi4
Anfänger
 
Registriert seit: Jul 2010
Beiträge: 5
Bedankt: 32
PoTaPi4 ist noch neu hier! | 0 Respekt Punkte
Standard

schreibst du werte in dein array bevor du es ausgibst ?
__________________
Steigerung des Luxus:
eigenes Auto,
eigene Villa,
eigene Meinung.
PoTaPi4 ist offline   Mit Zitat antworten
Ungelesen 18.07.10, 13:15   #8
WerniCH
Anfänger
 
Registriert seit: Nov 2008
Beiträge: 3
Bedankt: 13
WerniCH ist noch neu hier! | 0 Respekt Punkte
Standard

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?
WerniCH ist offline   Mit Zitat antworten
Ungelesen 14.08.10, 20:54   #9
WichsHure
Banned
 
Registriert seit: Jul 2010
Beiträge: 3
Bedankt: 5
WichsHure ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Mint Beitrag anzeigen
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...
WichsHure ist offline   Mit Zitat antworten
Ungelesen 15.08.10, 21:21   #10
Hasenpriester
Newbie
 
Registriert seit: Sep 2008
Beiträge: 38
Bedankt: 39
Hasenpriester ist noch neu hier! | 0 Respekt Punkte
Standard

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

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);
}
Hasenpriester ist offline   Mit Zitat antworten
Ungelesen 17.08.10, 06:22   #11
meister.propper1
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 1
Bedankt: 0
meister.propper1 ist noch neu hier! | 0 Respekt Punkte
Standard

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() ] );
meister.propper1 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


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


Sitemap

().