#c# #.net #string #split #delimiter
#c# #.net #строка #разделить #разделитель
Вопрос:
Возможно, я только что дошел до того, что переосмыслил это, но мне интересно: есть ли способ назначить список специальных символов, которые все следует считать разделителями, а затем разделить строку, используя этот список? Пример:
"battlestar.galactica-season 1"
должно быть возвращено как
battlestar galactica season 1
я думаю о регулярном выражении, но в данный момент я немного взволнован, слишком долго смотрел на это.
РЕДАКТИРОВАТЬ: Спасибо, ребята, за подтверждение моих подозрений, что я слишком много думал об этом, lol: вот что у меня получилось:
//remove the delimiter
string[] tempString = fileTitle.Split(@"/.-<>".ToCharArray());
fileTitle = "";
foreach (string part in tempString)
{
fileTitle = part " ";
}
return fileTitle;
Я полагаю, я мог бы просто заменить разделители пробелами «»… я выберу ответ, как только истечет таймер!
Ответ №1:
Встроенный String.Split
метод может использовать набор символов в качестве разделителей.
string s = "battlestar.galactica-season 1";
string[] words = s.split('.', '-');
Ответ №2:
Стандартный метод split сделает это за вас. Требуется массив символов:
public string[] Split(
params char[] separator
)
Ответ №3:
Вы можете просто вызвать перегрузку split:
myString.Split(new char[] { '.', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
Массив char — это список разделителей для разделения.
Ответ №4:
"battlestar.galactica-season 1".Split(new string[] { ".", "-" }, StringSplitOptions.RemoveEmptyEntries);
Ответ №5:
Это может быть неполным, но что-то вроде этого.
string value = "battlestar.galactica-season 1"
char[] delimiters = new char[] { 'r', 'n', '.', '-' };
string[] parts = value.Split(delimiters,
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i )
{
Console.WriteLine(parts[i]);
}
Ответ №6:
Вы пытаетесь разделить строку (создать несколько строк) или вы просто хотите заменить специальные символы пробелом, как может также предложить ваш пример (создать 1 измененную строку). Для первого варианта просто посмотрите другие ответы 🙂
Если вы хотите заменить, вы могли бы использовать
string title = "battlestar.galactica-season 1".Replace('.', ' ').Replace('-', ' ');
Комментарии:
1. по какой-то причине каждая версия replace, которую я пробовал, не работает … застрял со словом array :/
2. Я немного изменил свой пример, чтобы отразить необходимость переназначения результата replace. Однако, если вы ищете массив в техническом смысле этого слова, мой пример может быть для вас малопригоден, и вам следует использовать любой из других ответов, опубликованных здесь.
Ответ №7:
Для получения дополнительной информации о разделении с помощью простых примеров вы можете увидеть следующий URL:
Это также включает разделение по словам (несколько символов). Объяснена функция разделения в C #