Вопрос

Как разбить строку?

Допустим, у меня есть строка «собака, кошка, мышь, птица».

Моя фактическая цель — вставить каждого из этих животных в список, чтобы они стали элементами списка.

но я думаю, что пойму, как вставить эти элементы, если знаю, как разделить строку.или кто-нибудь знает лучший способ сделать это?

я использую 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[] { ',' });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top