2013-04-02 34 views
0
string[] array = new string[] { "12", "3$4", "5$67", "8$945", "$9484$", "$63$" }; 
foreach(string message in array) 
{ 
    FindString(message); 
} 

string remainingString = ""; 
string tempString = ""; 
string outputString = ""; 

理清消息和这个FindString字符串操作从阵列

private void FindString(string message) 
{ 
    if(message.Contains("$")) 
    {//remove char^process 
     int pos = -1; 
     pos = message.IndexOf('$'); 
     outputString = message.Substring(0, pos); 
     remainingString = message.Substring(pos + 1); 
     if(tempString != "") 
     { 
      outputString = tempString + outputString; 
     objList.Add(outputString); 
     tempString = ""; 
     } 
     if(remainingString.Length != 0) 
     { 
      FindString(remainingString); 
     //remainingString = ""; 
     } 
    } 
    else 
    { 
     tempString = tempString + message; 
    } 
} 

我建立消息的数组由其他应用程序发送。 “$”字符显示消息的结尾。从数组中,我必须对消息进行分类,这是实际的消息。这些我必须找出“123”45“,”678“,”945“,”9484“,”63“我写了一个代码,但只有”123“,”45“,”675“,”945“它跳过“9484”和“63”这些都是内部“$$”

+1

'fails'是非常具体的* *和* *不含糊你可以指定预期的行为吗? –

+0

insted失败我有添加实际的概率 – John

回答

6

无需丢失的代码行试试这个:

string[] array = new string[] { "12", "3$4", "5$67", "8$945", "$9484$", "$63$" }; 
string total = string.Join(string.Empty, array); 
List<string> outputString = 
        total.Split(
          new char[] { '$' }, 
          StringSplitOptions.RemoveEmptyEntries).ToList(); 
+1

真棒。我只是想发布这种方法。:D –

+0

Hossein你的答案是伟大的,但我必须通过在变量中存储值。请建议像这样的代码对不起:( – John

+1

@Means你需要哪个变量? –