Как правильно разобрать строку?

300
27 января 2017, 04:34

Получаю строку: Иван 5 рублей 20 копеек. (значение выделенное жирным всегда разное) Как разбить это всё в 3 переменные: name = Иван; rub = 5 рублей; kop = 20 копеек.

Answer 1

Если структура всегда одинакова, то можно зайти с конца, так будет проще всего.

String str = "Мне все равно как этого парня зовут 1 рубль 1 копейка";
String[] split = str.Split(' ');
Int32 splitCount = split.Count();
string kop = String.Join(" ", split.Skip(splitCount - 2)); 
string rub = String.Join(" ", split.Skip(splitCount - 4).Take(2));
string name = String.Join(" ", split.Take(splitCount - 4));
Answer 2

Можно использовать регулярку. Например такую:

(?'name'.*?) (?'rub'\d+ рублей) (?'kop'\d+ копеек)

Пример

Answer 3
string[] s = String.Split(' ');
name = s[0]; rub = s[1] + " " + s[2]; kop = s[3] + " " + s[4];
READ ALSO
Асинхронность в C#

Асинхронность в C#

Мне нужно реализовать асинхронную работу UI и алгоритма в своей программеЯ уже делал что-то подобное в прошлом, но тогда мой алгоритм ничего...

472
Несколько вопросов про Dapper

Несколько вопросов про Dapper

Поддерживает ли они подготовку запроса или каждый запрос компилируется по новой?

354
Переменная в C#

Переменная в C#

Учусь C#, читаю чужой код и возник вопрос, что обозначают {0} таким символом, это элемент массива? Вот весь кусок

323
Повышение производительности DataTable

Повышение производительности DataTable

За счет чего можно достигнуть высокой производительности в DataTable при поиске в ней?

362