String mehrmals splitten

StrikeTom

Bekanntes Mitglied
Hallo leute,
weiß jemand, wie ich einen String mehrmals splitte?
ich habe es so versucht:
Java:
String[] zahlen = meinstring.split("\\+");
		for(int i = 0; i < zahlen.length; i++)
		{
			zahlen[i].split("\\-");
		}
		for(int i = 0; i < zahlen.length; i++)
		{
			zahlen[i].split("\\*");
		}
		for(int i = 0; i < zahlen.length; i++)
		{
			zahlen[i].split("\\/");
		}
Aber das scheint nicht zu funktionieren
Danke im voraus🙂
 
So ganz ist mir noch nicht klar, wo du hin möchtest, aber bei einem Split erhälst du immer ein StringArray zurück, welches das Ergebnis beinhaltet. Der eigentliche String bleibt unangetastet. Im ersten Fall wertest du dein Ergebnis noch aus, indem du es im Array "zahlen" speicherst, aber die verbleibenden Splits speicherst du nicht zwischen, um sie auswerten zu können.
 
Java:
zahlen[i].split("\\-");
Du musst hier ja auch das Ergebnis von
Code:
split()
bearbeiten, also etwas wie
Java:
String[] weiteresSplit = zahlen[i].split("\\-");
Er wird dir beim weiteren Zerteilen nicht das Array erweitern 🙂

Probier mal einen StringTokenizer, vielleicht macht der auch genau das, was du brauchst?
 
Soweit bin ich:
Java:
StringTokenizer tokenizer = new StringTokenizer( aufgabe , "+-*/");
doch wie füge ich das jeztz zu einem Strign Array?

Danke😀
 
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

Als erste Frage: Möchtest du einen mathematisch Ausdruck parsen?
 
Mit einem Tokenzier kann man die einzelnen Teile (Tokens) durchlaufen, klassischerweise mit einer while-Schleife:
Java:
StringTokenizer tokenzier = ...;

while (tokenizer.hasMoreTokens())
{
    String token = tokenizer.nextToken();
    // token verarbeiten
}

Wenn es nur dein Ziel ist ein String-Array zu bekommen, ist
Code:
split()
wohl besser. Ich glaube auch bei
Code:
split()
kann man gleich alle Trennzeichen angeben ...wie gesagt, ich glaube 🙂
 
Ich würde mir dafür die java.util.Scanner Klasse ansehen, oder den String zeichenweise parsen.

Soweit bin ich:
Java:
StringTokenizer tokenizer = new StringTokenizer( aufgabe , "+-*/");
doch wie füge ich das jeztz zu einem Strign Array?

Danke😀

Denke aber nicht, dass das so gehen wird, weil er dann nach einem "+-*/" String sucht und dann splittet und wertet dies nicht als verschiedene Tokens.



in split() kannst du einen regulären Ausdruck (RegEx) rein geben, der alle operator Zeichen beinhaltet.
 
Zuletzt bearbeitet von einem Moderator:
Danke für alle Antworten😀
Ich habe es jetzt so gelöst:
Java:
double z[];
		 StringTokenizer tokenizer = new StringTokenizer( aufgabe , "+-*/"); 
		 z = new double[100];
		for(int i = 0; tokenizer.hasMoreTokens(); i++)
		{
			 z[i] = Double.parseDouble(tokenizer.nextToken());
		}
	}
Das funktioniert super🙂
 

Neue Themen


Zurück
Oben