2013-04-02 2 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 of fail Я добавил актуальную проблему – 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

Awesome. Я просто собирался опубликовать об этом подходе.: D –

+0

Hossein ваш ответ замечательный, но мне нужно идти, сохраняя значения в переменной. Пожалуйста, введите код, подобный этому. К сожалению :( – John

+1

@Means Какая переменная вам нужна? –

Смежные вопросы