Java: Erstes Wort aus String in anderem String speichern?
Ich habe in Java einen String "MyCoolString" der als Wert einen Satz hat. "Dieser Satz ist der Wert eines Strings!" Ich möchte dass das erste Wort aus dem String MyCoolString,(Trennzeichen ist ein Leerzeichen) in dem String "data" gespeichert wird. In meinem Beispiel müsste der Wert von data am Ende "Dieser" sein. Danke im Voraus!
LG
Und nochetwas: Das Trennzeichen sollte ich auch noch ändern können.
Wichtig::: Das Trennzeichen kann mehrmals im String vorkommen!
Hallo?
3 Antworten
Für einen Ansi-String in C++ gibt es bereits genug Antworten.
Ein Klassischer String in C geht nicht so einfach. Hier ist der einfachste Weg, eine 1:1 Kopie zu machen (stringcopy) und dann einen char *pointer auf die Kopie zu legen. dann auf das Leerzeichen "vorspulen":
while(*++pointer && (*pointer!=' '));
Das *++pointer besagt: "Erst Adresse inkrementieren, dann auswerten". Anders herum wäre *pointer++, also "Erst Auswerten, dann Inkrementieren".
Die While Schleife inkrementiert so lange wie das Stringende ("echte Null") nicht erreicht ist und kein Leerzeichen unter dem pointer liegt.
Im nächsten Schritt dann einfach
*pointer = 0;
Damit wird dann das Stringende oder das Leerzeichen mit einer "echten Null", also einem Stringende überschrieben.
Verarbeitet man also diese Kopie, endet der String dann genau da, wo vorher das erste Leerzeichen war. Oder wenn es keins gab an der alten Stelle.
String a = "Dieser Satz ist der Wert eines Strings!";
String b = a.split(" ")[0];
System.out.println(b);
Um keine leeren Elemente zu erhalten:
String[] words = " Dieser Satz ist der Wert eines Strings!".split(" ", -1);
Kann man so auch das erste Wort aus einem String filtern, wenn das Trennzeichen mehrmals im String vorhanden ist?