Webservice возвращает следующую строку
"ID: xxxx Статус: yyyy"
Как получить значение идентификатора значения без текста "ID:" и "Статус" без текста "Статус:".
Значение Id должно быть xxxx Значение статуса должно быть yyyy
длина значения неизвестна.
Один из способов был бы с регулярным выражением.
Это имеет то преимущество, что "естественно" подтверждает, что строка, возвращаемая веб-службой, соответствует вашему ожидаемому формату, что позволяет легко справляться с плохим вводом.
Например:
Regex regex = new Regex(@"^ID:\s*(.+)\s*Status:\s*(.+)$");
Match match = regex.Match(input);
// If the input doesn't match the expected format..
if (!match.Success)
throw new ArgumentException("...");
string id = match.Groups[1].Value; // Group 0 is the whole match
string status = match.Groups[2].Value;
^ Start of string
ID: Verbatim text
\s* 0 or more whitespaces
(.+) 'ID' group (you can use a named group if you like)
\s* 0 or more whitespaces
Status: Verbatim text
\s* 0 or more whitespaces
(.+) 'Status' group
$ End of string
Если вы можете уточнить, что могут быть xxxx
и yyyy
(алфавиты, числа и т.д.), мы могли бы обеспечить более надежное регулярное выражение.
Используйте что-то вроде этого:
string s = "ID: xxxx Status: yyyy";
string[] words = s.Split(' ');
string id = s[1];
string status = s[3];
Вы можете преобразовать/преобразовать значение в другие типы данных, которые могут потребоваться.
ID
или Status
содержат пробел?