2016-07-20 20 views
-3

それは、このようなカンマで区切られているいくつかの部品、で文字列を分割する分割を使用することが可能ですかしら第2の値を取得する:スプリット文字列とだけ

10,12-JUL-16,11,0 

私はちょうど第二の部分をしたいです、 12-JUL-16の文字列で、残りの文字列ではありませんか?

答えて

8

はい:

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

OR:

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

OR(パフォーマンスの向上 - スプリットの唯一の最初の3つの部分を取る):

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

なぜダウン投票? – user3185569

+1

いいえdownvote anymore @ user3185569 –

3

使用LINQのSkip()First()FirstOrDefault() 2番目のアイテムがあるかどうかわからない場合:

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

それとも、2番目の項目があると絶対に確信している場合、あなたは配列のアクセサを使用することができます。

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

Skipにはパラメータなしのオーバーロードがありますか? – user3185569

+0

いいえ、それはありません;)@ user3185569 –

4

あなたはString.Splitを使用することができ、それは分割のない最大を受け付けていないオーバーロードされたメソッドを持っています。

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

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

チェックDemo

+0

提案:実際に動作するデモ入力文字列を提供します;-) – wischi

+4

これはコンパイルされません。 – user3185569

+0

@ user3185569文字配列を指定するのを忘れて、更新しました。ありがとうございました。 –

3

はい、次のことができます。

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

は、その後、あなたの2番目の部分はparts[1]です。

か:

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

またはLINQのと:

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

また、あなたが文字列分割のための一つのシンボル、すなわちだけでなく、使用することができます。

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

ここけれども方法がありますが休息はすでにそれを言及しています。

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

出力:

12-JUL-16 

Demo

関連する問題