Разделение строки только соответствует требованиям C # - PullRequest
1 голос
/ 17 февраля 2010

Я пытаюсь разделить название песни на две строки: исполнитель и песня. Я получаю оригинальную строку, как это: «исполнитель - песня». Используя этот код, я разделил строку, используя «-» в качестве сплитера:

    char[] splitter = { '-' };
    string[] songInfo = new string[2];
    songInfo = winAmp.Split(splitter);

Это отлично работает, и все, кроме случаев, когда я попадаю в группу с '-' в названии, например, SR-71. Однако, поскольку исходные строки разделяются пробелом, а затем - и снова пробелом (как SR-71 - Завтра), как бы я разбил строку, чтобы это произошло? Я попытался изменить сплиттер на строку и ввести

        string[] splitter = { " - " };

в нем, но он возвращает отсутствие совпадения по перегрузке.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2010

По некоторым причинам, string.Split не имеет перегрузки, которая принимает только строковый массив.

Вам необходимо вызвать эту перегрузку :

string[] songInfo = winAmp.Split(new string[] { " - " }, StringSplitOptions.None);

Не спрашивайте меня, почему.

0 голосов
/ 17 февраля 2010

Вы также можете использовать

 Match M = System.Text.RegularExpressions.Regex.match(str,"(.*?)\s-\s(.*)");
 string Group = M.Groups[1].Value;
 string Song = M.Groups[2].Value; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...