Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
13.07.10, 19:37
|
#1
|
Ist öfter hier
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
|
[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.
|
|
|
|
13.07.10, 21:36
|
#2
|
xor eax, eax
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
|
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
|
|
|
14.07.10, 01:31
|
#3
|
Anfänger
Registriert seit: Jul 2010
Beiträge: 5
Bedankt: 32
|
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
|
|
|
14.07.10, 11:21
|
#4
|
Ist öfter hier
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
|
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.
|
|
|
|
14.07.10, 11:37
|
#5
|
xor eax, eax
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
|
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
|
|
|
14.07.10, 11:44
|
#6
|
Ist öfter hier
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
|
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.
|
|
|
|
14.07.10, 13:40
|
#7
|
Anfänger
Registriert seit: Jul 2010
Beiträge: 5
Bedankt: 32
|
schreibst du werte in dein array bevor du es ausgibst ?
__________________
Steigerung des Luxus:
eigenes Auto,
eigene Villa,
eigene Meinung.
|
|
|
18.07.10, 13:15
|
#8
|
Anfänger
Registriert seit: Nov 2008
Beiträge: 3
Bedankt: 13
|
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?
|
|
|
14.08.10, 20:54
|
#9
|
Banned
Registriert seit: Jul 2010
Beiträge: 3
Bedankt: 5
|
Zitat:
Zitat von Mint
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...
|
|
|
15.08.10, 21:21
|
#10
|
Newbie
Registriert seit: Sep 2008
Beiträge: 38
Bedankt: 39
|
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);
}
|
|
|
17.08.10, 06:22
|
#11
|
Anfänger
Registriert seit: Mar 2010
Beiträge: 1
Bedankt: 0
|
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() ] );
|
|
|
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
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
().
|