Разделить строку второй запятой, затем третьей запятой - PullRequest
0 голосов
/ 16 мая 2018

У меня есть строка, которая выглядит следующим образом:

Менее 5000 долл. США, 5000–9 999 долл. США, 10 000–14 999 долл. США, 45 000–49 999 долл. США, 50 000–54 999 долл. США

И то, что я хотел бы иметь:

Менее 5000 долл. США или 5000 долл. США - 9 999 долл. США или 10 000 долл. США - 14 999 долл. США или 45 000 долл. США - 49 999 долл. США или 50 000 долл. США - 54 999

То, что я пробовал, это:

items[1].Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries)
        .Select(e => new AnswerModel { Name = e }).ToList()

Имя должно быть "Менее 5000 долларов", затем "5000-99999 долларов" и т. Д.

Но он разделяется на каждую запятую, мне нужно было бы разделить его сначала на секунду, а затем на третью.

Какой будет наилучший подход?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Если ваша строка выглядит точно так же, как вы вставили здесь, и у нее всегда будет такой шаблон, тогда вы можете разбить строку на два символа:

items[1].Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

Обновление:

Но если ваша строка без пробелов, вы должны заменить сначала каким-нибудь уникальным символом, таким как |, а затем разделить его на этот новый символ:

items[1].Replace(",$", "|$").Split(new char[1] { '|' }, StringSplitOptions.RemoveEmptyEntries);

Также вы можете заменить его наor $ и строка будет уже в желаемом формате, и не нужно будет разбивать и снова соединяться.

Это должно сработать.

0 голосов
/ 16 мая 2018

Может быть, вы можете разделить на ", "

string s = "Less than $5,000, $5,000-$9,999, $10,000-$14,999, $45,000-$49,999, $50,000-$54,999";
string result = string.Join(" or ", s.Split(new []{", "},StringSplitOptions.None));

Возвращает желаемый результат:

Менее 5000 долларов США или 5000 долларов США - 9 999 долларов США или 10 000 долларов США - 14 999 долларов США или 45 000–49 999 долл. США или 50 000–54 999 долл. США

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...