Как разделить строку на несколько значений?
-
04-07-2019 - |
Вопрос
Как разбить строку?
Допустим, у меня есть строка «собака, кошка, мышь, птица».
Моя фактическая цель — вставить каждого из этих животных в список, чтобы они стали элементами списка.
но я думаю, что пойму, как вставить эти элементы, если знаю, как разделить строку.или кто-нибудь знает лучший способ сделать это?
я использую asp С#
Решение
string[] tokens = text.Split(',');
for (int i = 0; i < tokens.Length; i++)
{
yourListBox.Add(new ListItem(token[i], token[i]));
}
Другие советы
Вы уже пробовали String.Split ? Вам может потребоваться некоторая постобработка для удаления пробелов, если вы хотите " a, b, c " заканчивать как {"a", "b", "c"}, но "a b, c"; в итоге {{a b " ;, " c "}.
Например:
private readonly char[] Delimiters = new char[]{','};
private static string[] SplitAndTrim(string input)
{
string[] tokens = input.Split(Delimiters,
StringSplitOptions.RemoveEmptyEntries);
// Remove leading and trailing whitespace
for (int i=0; i < tokens.Length; i++)
{
tokens[i] = tokens[i].Trim();
}
return tokens;
}
Ненужная версия Linq;
from s in str.Split(',')
where !String.IsNullOrEmpty(s.Trim())
select s.Trim();
Или просто:
targetListBox.Items.AddRange(inputString.Split(','));
Или это, чтобы убедиться, что строки обрезаны:
targetListBox.Items.AddRange((from each in inputString.Split(',')
select each.Trim()).ToArray<string>());
Упс!Как отмечают комментарии, я пропустил, что это был ASP.NET, поэтому невозможно инициализировать из массива строк - нужно сделать это следующим образом:
var items = (from each in inputString.Split(',')
select each.Trim()).ToArray<string>();
foreach (var currentItem in items)
{
targetListBox.Items.Add(new ListItem(currentItem));
}
Это дает вам строковый массив от strVar.Split
"dog, cat, mouse,bird".Split(new[] { ',' });