StringTokenizer macht Quatsch

Massta

Mitglied
Hallo Community,
kann mir jemand von euch bei einem kleinen Problem helfen?
Ich will einen StringTokenizer benutzen um Strings zu bearbeiten, der funktioniert auch super, nur bei einem String macht er aus unerfindlichen Gründen nicht was er soll. Vielleicht überseh ich ja was, aber ich brauche Hilfe!

Java:
java.util.StringTokenizer st = new java.util.StringTokenizer
   ("object={0/0/100/100/0/texture1}","object={");
System.out.println(st.nextToken());

Im Programm sieht das anders aus, aber es geht genau um diesen String. Genauer gesagt will ich den Inhalt der beiden geschweiften Klammern haben (Gibt es einen besseren weg als die Klammern und so wegzuschneiden?), aber die Ausgabe lautet:

0/0/100/100/0/
.
Warum wird der letzte Teil weggeschnitten?
MfG Massta
 

Bernd Hohmann

Top Contributor
Entweder Regex (halte ich persönlich nichts von) oder konventionell .indexOf("{"), .lastIndexOf("}") und .substring(...)

Letzteres hat den Vorteil, dass man gleich prüfen kann ob der String konsistent ist.

Bernd
 
T

troll

Gast
verstehe zwar nicht was du gegen regex hast aber deine letzte aussage ist mist denn das kann man auch mit regex .. und das sogar einfacher ...
 

Massta

Mitglied
Entweder Regex (halte ich persönlich nichts von) oder konventionell .indexOf("{"), .lastIndexOf("}") und .substring(...)

Letzteres hat den Vorteil, dass man gleich prüfen kann ob der String konsistent ist.

Bernd

Achjaaaa indexOf("") hatte ich ja ganz vergessen... Für Leute die in den Regular Expressions nicht ganz so fit sind ist das sicher eine gute Variante. Aber wie gesagt, es funktioniert bereits alles so wie es soll.
Das ganze ist Teil eines 2D-MapEditors, genauer Teil eines Algorithmuses zum laden einer gespeicherten Map.
 

Massta

Mitglied
Aber auf die ursprüngliche Frage warum der StringTokenizer nicht richtig geht hat niemand eine Antwort? Das würde mich echt interessieren.
 

Bernd Hohmann

Top Contributor
Aber auf die ursprüngliche Frage warum der StringTokenizer nicht richtig geht hat niemand eine Antwort? Das würde mich echt interessieren.

Der geht schon richtig, aber nicht wie Du denkst: als zweiter Parameter wird die Menge der Zeichen angegeben, die als Delimiter dienen - und wird nicht in Gesamtheit als Trenner betrachtet.

Er zerhackt also bei den Zeichen o,b,j,e,c,t,= und "{"

Für das gewünschte Ergebnis müsstest Du schreiben

Code:
	java.util.StringTokenizer st = new java.util.StringTokenizer("object={0/0/100/100/0/texture1}", "{}");
	st.nextToken(); // "object=" überlesen als erstes Token
	System.out.println(st.nextToken());

Bernd
 

Massta

Mitglied
Na toll, dann habe ich mir ja unnötig Mühe gemacht bei meinen anderen Methoden ;(

Danke für die Antwort, für die Zukunft weiß ich Bescheid!
 
S

Spacerat

Gast
Alternativ kann man zu StringTokenizer und Regex noch den StreamTokenizer erwähnen. Dieser ließe sich leicht um die Methoden "setOpenChar()", "setCloseChar()", "setOpenChars()", "setCloseChars()", "nextOpen()" und "nextClose()" erweitern. Das wäre dann die dritte Möglichkeit einer Herangehensweise und jeder kann sich seine individuelle Reihenfolge, wie er es am besten versucht zu lösen, selbst aussuchen. Hier ist meine:

1. StreamTokenizer
2. RegEx
3. StringTokenizer

Das der StringTokenizer bei mir als letztes auftaucht, basiert auf der Erfahrung, dass nicht jede Datei blos aus Zeichenketten besteht und wenn einem dann mal eine solche unterkommt, lässt sich diese bereits mit dem StreamTokenizer in Strings oder wahlweise auch in Zahlen zerlegen. Probleme hat man bei beiden Tokenizern erst dann, wenn man im Stream oder in der Zeichenkette zu bestimmten Positionen springen muss, dann hilft Regex (verbunden mit einem BufferedStream bzw. -Reader oder gar RandomAccessFile), sofern man es denn mal geschnallt hat.
 

Massta

Mitglied
Bernd, einverstanden, aber [c]\{(.*?)\}[/c] sollte man gerade noch lesen können ;)

Es ist leider einfach so, dass ich zwar Informatik in der Schule hab (bin gerade 17 geworden), aber den Kram den wir da lernen, kann man echt zu nichts gebrauchen... Also muss ich mir wohl oder übel alles selbst beibringen, und zu den Regular Expressions hab ich zwar mal was gelesen, aber mir das noch nie wirklich angeguckt.
 
S

Spacerat

Gast
Na dann herzlichen Glühstrumpf nachträglich zum Geburtstag.
Regex ist schon hilfreich aber irgendwie wie Schach, das kapiert auch nicht jeder. Sieh's dir ganz einfach mal an aber prügel es dir nicht mit 'ner Uzi in den Kopf, der 18. Geburtstag ist ja immerhin einer der schönsten, den willst du doch nicht verpassen. Und noch was: Solltest du Regex dann irgendwann verstanden haben, dann betrachte es ja nicht als "Allheilmittel". Das gilt dann auch für andere Bereiche (APIs, Design-Pattern, Algorhitmen).
Was man in der Schule oder sonstwo lernt, dient ja nur dem Zweck, dass man überhaupt etwas lernt, grundlegend nutzlos ist das keinesfalls. Manchmal aber wird die "Nutzlosigkeit" von irgendwelchen Fallbeispielen aber auch mit irgendwelchen noch viel nutzloseren Dingen, wie z.B. Stifte und Mäuse (SuM) vermittelt. Da lernt man dann zwar Grafiken zu bewegen und Zeugs aber eines lernt man dabei nicht - die Java-Standard-API, welche man aber unbedingt kennen sollte, wenn man Java programmieren will.
 
Zuletzt bearbeitet von einem Moderator:

Massta

Mitglied
Manchmal aber wird die "Nutzlosigkeit" von irgendwelchen Fallbeispielen aber auch mit irgendwelchen noch viel nutzloseren Dingen, wie z.B. Stifte und Mäuse (SuM) vermittelt. Da lernt man dann zwar Grafiken zu bewegen und Zeugs aber eines lernt man dabei nicht - die Java-Standard-API, welche man aber unbedingt kennen sollte, wenn man Java programmieren will.

Dankeschön :)

Na rate mal was wir seit 2 1/2 Jahren machen? SuM! Leider kann 3/5 des Kurses nichtmal die Kopfzeile einer Klasse schreiben, also kommen wir auch recht langsam vorran. Nächsten Frühling/Sommer kommt schon die Abiturprüfung und ich fühle mich nicht sehr gut vorbereitet, eben weil sowas dran kommen wird.
 
S

Spacerat

Gast
Nächsten Frühling/Sommer kommt schon die Abiturprüfung und ich fühle mich nicht sehr gut vorbereitet, eben weil sowas dran kommen wird.
Bitte was? Das ist auch noch Prüfungsrelevant? Wo leben wir denn?
Mal ein Vorschlag: Folgendes Szenario als Karikatur. Ein deutscher Jungingenieur referiert vor einer Gruppe aus z.B. Indien importierter Fachkräfte. Eine Sprechblase: "...und das alles bekommt man wunderbar mit Stiften und Mäusen realisiert!" und dazu sieht man, wie sich die indischen Fachkräfte über diese Aussage (logischerweise) vor Lachen biegen. Wenn du einen Klassenkameraden hast oder das selbst hin bekommst, wäre das mal was Sinnvolles für 'ne Klassenpinnwand oder ähnlichem.
Hintergrund: In Deutschland hat's zu wenig Fachkräfte, warum wohl? Deshalb importiert man sie per Greencard und dass bei immer noch recht hoher Arbeitslosenzahl. Ist also mehr etwas gegen die Art, wie deutsche Politiker versuchen, das (Billig-) Fachkräfte-Problem zu lösen und gegen stupide Methoden, Wissen vermitteln zu wollen aber keinesfalls etwas gegen Inder.
 

Massta

Mitglied
SuM explizit nicht, aber hm wie soll ich sagen.. Etwas was genau das gleiche ist nur anders heißt. Es geht aber eher darum, dass wir uns im Unterricht mit unnötigem irrelevatem(!) Kram rumschlagen, und nicht, oder zumindest nicht ausreichen, lernen was wir sollten. Außerdem sind natürlich wichtige Dinge wie Umgang mit der Java Bibliothek etc. nicht Prüfungsrelevant bzw. werden noch nichtmal im Unterricht dran genommen.

Die Karikatur trifft ja wohl auf jeden Fall zu :D
Es ist aber leider nicht die Schuld meines Lehrers dass ich (und die Leute die es interessiert) zu wenig lernen, sondern die der restlichen Klasse und des Bildungssystems, gegen beides kann man wenig bis garnichts unternehmen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Problem mit Konsolenausgabe bei StringTokenizer Java Basics - Anfänger-Themen 2
B StringTokenizer Java Basics - Anfänger-Themen 11
L Textfile mit StringTokenizer einlesen und sortiert ausgeben Java Basics - Anfänger-Themen 8
S StringTokenizer; countTokens() Java Basics - Anfänger-Themen 6
J StringTokenizer? Java Basics - Anfänger-Themen 2
V StringTokenizer für Rechenzeichen Java Basics - Anfänger-Themen 12
C StringTokenizer Delimiter " " "??? Java Basics - Anfänger-Themen 2
M java.lang.StringTokenizer Java Basics - Anfänger-Themen 4
X StringTokenizer immer nur ein Zeichen Java Basics - Anfänger-Themen 12
T OOP StringTokenizer, Zuweisung der einzelnen Attribute Java Basics - Anfänger-Themen 21
B Fragen zu StringTokenizer? Java Basics - Anfänger-Themen 8
M String.split() und StringTokenizer Java Basics - Anfänger-Themen 2
G StringTokenizer Java Basics - Anfänger-Themen 4
J StringTokenizer Java Basics - Anfänger-Themen 3
G Array mit Stringtokenizer füllen Java Basics - Anfänger-Themen 2
P StringTokenizer Java Basics - Anfänger-Themen 2
V StringTokenizer Java Basics - Anfänger-Themen 2
P Rexex - stringtokenizer - String funktionen allgemein Java Basics - Anfänger-Themen 3
G Java StringTokenizer Java Basics - Anfänger-Themen 2
D StringTokenizer wirft Exception Java Basics - Anfänger-Themen 9
G StringTokenizer mit unterschiedlichen Delimitern Java Basics - Anfänger-Themen 7
G StringTokenizer - jedem Zeichen einen Bezeichner zuweisen Java Basics - Anfänger-Themen 4
S schwieriger String für StringTokenizer, wie am Besten ? Java Basics - Anfänger-Themen 8
U StringTokenizer soll in String-Array schreiben Java Basics - Anfänger-Themen 19
R StringTokenizer Java Basics - Anfänger-Themen 9
V StringTokenizer Java Basics - Anfänger-Themen 10
S StringTokenizer: Daten aus Datei auslesen Java Basics - Anfänger-Themen 11
S TreeSet und StringTokenizer Java Basics - Anfänger-Themen 6
C StringTokenizer Java Basics - Anfänger-Themen 3
A Problem StringTokenizer mit delimiters Java Basics - Anfänger-Themen 2
N Zeilenumbruch im StringTokenizer?? Java Basics - Anfänger-Themen 4
J StringTokenizer Hilfe !!!!!!!!!!! Java Basics - Anfänger-Themen 5
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum macht man in IJVM am Anfang Bipush 0? Java Basics - Anfänger-Themen 1
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
K Gleitkommazahl macht man 0 punkt matisse oder 1 punkt matisse Java Basics - Anfänger-Themen 2
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
N Was macht die Klasse? Java Basics - Anfänger-Themen 3
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
L Was genau macht -> Java Basics - Anfänger-Themen 18
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
M Was macht super (...)? Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
J JButton macht was er will Java Basics - Anfänger-Themen 3
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
Tacofan Was macht dieses "Stückchen Code"? Java Basics - Anfänger-Themen 3
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
H Tastatur.wurdeGedrueckt() macht nicht das, was ich will :/ Java Basics - Anfänger-Themen 2
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
J Shakersort, das Array macht Probleme! Java Basics - Anfänger-Themen 4
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
C Scrollpanel autoscroll(false) macht nix Java Basics - Anfänger-Themen 2
N Papaklasse macht Zicken mit Parameterkonstruktor Java Basics - Anfänger-Themen 7
K Datentypen double x als Bruch aus Integern macht x zu integer? Java Basics - Anfänger-Themen 3
C Erste Schritte was macht eigentlich "for (;;)" Java Basics - Anfänger-Themen 7
C JDK-Installer macht nichts Java Basics - Anfänger-Themen 11
A JApplet: einbinden von weiteren Jars macht Probleme Java Basics - Anfänger-Themen 2
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
I Für was macht man "deep Kopien" Java Basics - Anfänger-Themen 4
S Erste Schritte While do Schleife - macht nicht was sie soll Java Basics - Anfänger-Themen 7
9 Programm macht nicht was es soll Java Basics - Anfänger-Themen 6
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
S JApplet macht Probleme Java Basics - Anfänger-Themen 2
Y Was macht folgende Regular Expression Java Basics - Anfänger-Themen 2
M Was macht bzw. was bringt ein constructor? Java Basics - Anfänger-Themen 12
P orphaned case macht probs Java Basics - Anfänger-Themen 3
ruutaiokwu System.err.print(ln) macht ein durcheinander??! Java Basics - Anfänger-Themen 8
X Selectionsort macht Probleme Java Basics - Anfänger-Themen 2
P was macht der code? Java Basics - Anfänger-Themen 4
M OOP for Schleife macht mir Probleme mit Arrays Java Basics - Anfänger-Themen 7
R Was macht...? Java Basics - Anfänger-Themen 4
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
M JavaEditor macht Probleme! Invalid Flag! Java Basics - Anfänger-Themen 9
P Was macht dieser Source code? Java Basics - Anfänger-Themen 5
R BufferedWriter macht komische Zeichen Java Basics - Anfänger-Themen 3
I KeyEvent macht nichts.^^ Java Basics - Anfänger-Themen 3
E new File macht den Pfad kaputt Java Basics - Anfänger-Themen 15
S Wie macht man sowas?? Ist da ne If-Schleife richtig?? Java Basics - Anfänger-Themen 22
Pithecanthropus Thread anhalten, der aber ein readObject() macht. Java Basics - Anfänger-Themen 4
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben