2016-07-20 4 views
-3

Ich frage mich, ob es möglich ist Split zu verwenden, um eine Zeichenfolge mit mehreren Teilen zu unterteilen, die durch ein Komma getrennt werden, wie folgt aus:Split-String und bekommen Zweiter Wert nur

10,12-JUL-16,11,0 

Ich will nur den zweiten Teil, der 12-Juli-16 der Schnur und nicht der Rest?

Antwort

8

Ja:

var result = str.Split(',')[1]; 

OR:

var result = str.Split(',').Skip(1).FirstOrDefault(); 

OR (Bessere Leistung - nimmt nur die ersten drei Teile des split):

var result = str.Split(new []{ ',' }, 3).Skip(1).FirstOrDefault(); 
+0

Warum die Nach-unten-Abstimmung? – user3185569

+1

Kein Downvote mehr @ user3185569 –

3

Verwenden LINQ Skip() und First() oder FirstOrDefault() Wenn Sie nicht sicher sind, gibt es einen zweiten Artikel:

string s = "10,12-JUL-16,11,0"; 
string second = s.Split(',').Skip(1).First(); 

Oder wenn Sie absolut sicher sind, ein zweiter Punkt ist, können Sie das Array Accessor verwenden:

string second = s.Split(',')[1]; 
+0

Hat Skip eine parameterlose Überlastung? – user3185569

+0

Nein. Tut es nicht;) @ user3185569 –

4

Sie String.Split verwenden könnte, hat es eine überladene Methode, die nicht von Splits max akzeptiert.

var input = "10,12-JUL-16,11,0"; // input string. 

input.Split(new char[]{','},3)[1] 

Überprüfen Sie die Demo

+0

Vorschlag: Demo-Input-String zur Verfügung stellen, der tatsächlich funktioniert (hat einen zweiten Teil) ;-) – wischi

+4

Dies kompiliert nicht. – user3185569

+0

@ user3185569 vergessen, Char-Array anzugeben, aktualisiert, Danke für die Hervorhebung. –

3

Ja, Sie können:

string[] parts = str.Split(','); 

dann Ihre zweite Teil ist in parts[1].

oder:

string secondPart = str.Split(',')[1]; 

oder mit Linq:

string secondPart = str.Split(',').Skip(1).FirstOrDefault(); 
if (secondPart != null) 
{ 
    ... 
} 
else 
{ 
    ... 
} 

Auch können Sie nicht nur ein Symbol für String-Splitting verwenden, das heißt:

string secondPart = str.Split(new[] {',', '.', ';'})[1]; 
3

Hier ist ein Weg, obwohl die Ruhe hat es schon erwähnt.

string input = "10,12-JUL-16,11,0"; 
string[] parts = input.Split(','); 
Console.WriteLine(parts[1]); 

Ausgang:

12-JUL-16 

Demo

Verwandte Themen