Как разделить текст, имеющий символ, который является комбинацией запятой и пробела? - PullRequest
0 голосов
/ 27 августа 2018

У меня есть следующая строка, которую я хочу разделить запятой.

"Кларк Кент , Привет, мистер Уэйн , 发送 于 15:38。"

Звучит легко, правда?Проблема в том, что текст не содержит ни одного запятой.Запятые, которые вы видите в тексте, представляют собой один символ, представляющий собой комбинацию запятой и пробела (просто скопируйте, вставьте вышеприведенное предложение в текстовый редактор и проверьте его).

Проблема заключается в следующем: мне нужно разделитьтекст через запятую.Хотя я могу скопировать и вставить символ, добавить его как один из символов-разделителей, мне интересно, смогу ли я просто преобразовать такие тексты в текст, который можно разделить запятой.Ну, пока не беспокойся о китайских словах.Аналогичное имеет место с последним символом, который вы видите в тексте.На самом деле, такое поведение возникает, когда в моем приложении установлен язык «Китайский».

enter image description here

К вашему сведению: я думал, что такая запятая не для печати / не ascii char, но дляк моему удивлению, когда я напечатал текст в консоли, я получил:

enter image description here

Вот мой ввод и ожидаемый вывод:

Ввод: "Clark Kent,Hello Mr.Wayne,发送于 3:38 PM。"

Ожидаемый результат: {"Clark Kent", "Hello Mr.Wayne", "发送于 3:38 PM。"}.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Запятая, с которой вы сталкиваетесь, является ' Fullwidth Comma ' (Hex: 0xff0c).Обычный символ Юникода, который можно заменить запятой и пробелом, используя метод string.Replace:

s.Replace("<fullwidthComma>", "<trueComma><space>");
0 голосов
/ 27 августа 2018

То, что я предлагаю (так же, как @Chris в комментариях), это заменить странное значение запятой на обычную запятую перед разделением.

var s = "Clark Kent,Hello Mr.Wayne,发送于 3:38 PM。";
s = s.Replace(',', ',');
var splitted = s.Split(',');

Преимущество состоит в том, что если он найдет странную запятую, он заменит другоебудет обрабатываться с обычной запятой.

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