2016-09-04 2 views
2

私は以下のようにこの文字列データを持っている: -.NET - どのように文字列でグループデータを決定するために(区切り文字)

mydata="KK,23,45,33,56,66,X/TT,01,23,23,56,Y/" 

この文字列データが個別にこの文字/によって複数の基であることができ、私は思い出してみよう。

While Loop (Group i++) 

    '// first 3 items 

など:「KK、23,45」

を機能するように送られた - :今私の部分に私がループしながら、このようなグループのデータを、それをプッシュするために、上記グループのデータ列から、それはより具体的なスライスする必要があります
'// 2 items after that 

等: "33,56" が関数Bに送信

'// last 2 items 

等: "66、X"

'// remove this charater "/" before continue next group data 

    i=i+1 
Loop 
C機能に送ら

私は上記のwhileループのようにスライスする方法を理解できません。この問題を解決する考えはありますか? 私の質問を読んでお返事ありがとうございます。

答えて

0

あなたがのstring.Splitの方法から利益を得ることができるように見えます:

  • スプリット個々の項目を取得するために「」によって「/」
  • あなたのあなたの項目を取得するために分割することにより、元の文字列の各パーツメソッドA、Bに送られ、そしてC
0

はそれを試してみてくださいする:

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries); 
foreach (string item in groups) 
{ 
    string[] InnerGroup = item.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]); 
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]); 
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]); 
} 

またはWhilでeループ:

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries); 
int i = 0; 
while(i < groups.Length) 
{ 
    string[] InnerGroup = groups[i].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]); 
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]); 
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]); 
    i++; 
} 

上記のコードでは、NULL値は無視されます。私はこれが役立つことを願っています

string[] groups = mydata.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries); 
int i = 0; 
while(i < groups.Length) 
{ 
    string[] InnerGroup = groups[i].Split(new char[] { ',' }); 
    SendToFunctionA(InnerGroup[0] + "," + InnerGroup[1] + "," + InnerGroup[2]); 
    SendToFunctionB(InnerGroup[3] + "," + InnerGroup[4]); 
    SendToFunctionC(InnerGroup[5] + "," + InnerGroup[6]); 
    i++; 
} 

:グループがNULL値を持っている場合

、あなたが怒鳴るコードを使用することができます。

+0

こんにちはMorteza.M
あなたのソリューションは自分の状況にぴったりだと私はこれが非常に単純化され、参照として保持するためのきれいなコードだと思います。
私はまた、@ dasblinkenlightに感謝し、私に助けと優しさを覚悟させる必要があります。
ありがとうございます。 – ahadeveloper777

+0

データの一部がnullの場合、この文字列のようにソリューションに何が起きるかを明示する必要があります:mydata = "KK、23,45、、56,66、X /、01,23,23,56、Y /"? – ahadeveloper777

+0

ありがとうございます。私のソリューションはヌル値を削除します。 ""(ヌル)の代わりに ""(スペース)を使用すると、このソリューションは正しく動作します。 –

関連する問題