вопрос разделения строк - PullRequest
4 голосов
/ 31 марта 2010

т альтернативный текст http://i43.tinypic.com/2rpfjth.png

это возвращает не то, что я ожидал. я ожидал что-то вроде: аб такси аб

что я делаю не так?

Ответы [ 6 ]

7 голосов
/ 31 марта 2010

не делайте .ToCharArray ()

он разделится \ r, затем \ n

вот почему у вас есть пустое значение

как то так должно работать

var aa = ("a" & Environment.NewLine & "b" & Environment.NewLine & "c").Split(New String[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
6 голосов
/ 31 марта 2010

Поскольку вы разделяете на "\ r" и "n", String.Split извлекает пустую строку из "\ r \ n".

Взгляните на StringSplitOptions.RemoveEmptyEntries или используйте new String[] { "\r\n" } вместо "\r\n".ToCharArray().

1 голос
/ 31 марта 2010

Environment.NewLine - вероятно, путь, но если нет, то это работает

var ab = "a\r\nb\r\nc";
var abs = ab.Split(new[]{"\r\n"}, StringSplitOptions.None);
1 голос
/ 31 марта 2010

Вы просто разделяете строку, используя \r или \n в качестве разделителей, а не \r\n вместе.

0 голосов
/ 31 марта 2010

Насколько я понимаю, последовательность символов строки, которую вы предоставляете методу Split, представляет собой список символов-разделителей, а не один разделитель из нескольких символов.

В вашем случае, Split рассматривает символы '\ r' и '\ n' как разделители. Поэтому, когда он встречает последовательность '\ r \ n', он возвращает строку между этими двумя разделителями, пустую строку.

0 голосов
/ 31 марта 2010

Эта опция также работает, string [] b = Regex.Split (abc, "\ r \ n");

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