2013-04-02 43 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你需要哪個變量? –