33 Stimmen

Wie extrahiere ich eine Teilzeichenkette aus einer Zeichenfolge, bis das zweite Leerzeichen auftritt?

Ich habe einen String wie diesen:

"o1 1232.5467 1232.5467 1232.5467 1232.5467 1232.5467 1232.5467"

Wie extrahiere ich nur "o1 1232.5467" ?

Die Anzahl der zu extrahierenden Zeichen ist nicht immer gleich. Daher möchte ich nur so lange extrahieren, bis das zweite Leerzeichen auftaucht.

2 Stimmen

Wird zwischen den Wörtern immer nur ein Leerzeichen stehen? Wenn nicht, sind die meisten der folgenden Lösungen ungültig.

66voto

Sorantis Punkte 14060

Ein einfacher Ansatz wäre der folgende:

string[] tokens = str.Split(' ');
string retVal = tokens[0] + " " + tokens[1];

29voto

Hans Olsson Punkte 52909

Verwenden Sie einfach String.IndexOf zweimal wie in:

     string str = "My Test String";
     int index = str.IndexOf(' ');
     index = str.IndexOf(' ', index + 1);
     string result = str.Substring(0, index);

1 Stimmen

... und wenn Sie ab dem Ende einer Zeichenkette suchen (LastIndexOf), würden Sie in der dritten Zeile "index-1" ersetzen.

0 Stimmen

Ich bevorzuge diesen Ansatz, weil er so effizient ist.

13voto

Guffa Punkte 663241

Ermittelt die Position des ersten Leerzeichens:

int space1 = theString.IndexOf(' ');

Die Position des nächsten Leerzeichens danach:

int space2 = theString.IndexOf(' ', space1 + 1);

Holt den Teil der Zeichenkette bis zum zweiten Leerzeichen:

string firstPart = theString.Substring(0, space2);

Der obige Code lässt sich in einem Einzeiler zusammenfassen:

string firstPart = theString.Substring(0, theString.IndexOf(' ', theString.IndexOf(' ') + 1));

8voto

D'Arcy Rittich Punkte 159655
s.Substring(0, s.IndexOf(" ", s.IndexOf(" ") + 1))

3voto

den123 Punkte 773

Etwa so:

int i = str.IndexOf(' ');
i = str.IndexOf(' ', i + 1);
return str.Substring(i);

0 Stimmen

Das war eine ganz einfache, effiziente und clevere Lösung :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X