¿Cómo divido una cadena en múltiples valores?

¿Cómo se divide una cadena?

Digamos que tengo una cuerda “perro, gato, ratón, pájaro”

Mi objective real es insertar cada uno de esos animales en un listBox, para que se conviertan en elementos en un cuadro de lista.

pero creo tener la idea de cómo insertar esos elementos si sé cómo dividir la cadena. o alguien sabe una mejor manera de hacer esto?

estoy usando asp c #

string[] tokens = text.Split(','); for (int i = 0; i < tokens.Length; i++) { yourListBox.Add(new ListItem(token[i], token[i])); } 

¿Has probado String.Split ? Es posible que necesite algún postprocesamiento para eliminar espacios en blanco si desea que “a, b, c” termine como {“a”, “b”, “c”} pero “ab, c” para que termine como {“ab “,” c “}.

Por ejemplo:

 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; } 

Needless Linq versión;

 from s in str.Split(',') where !String.IsNullOrEmpty(s.Trim()) select s.Trim(); 

O simplemente:

 targetListBox.Items.AddRange(inputString.Split(',')); 

O bien para asegurarse de que las cuerdas estén recortadas:

 targetListBox.Items.AddRange((from each in inputString.Split(',') select each.Trim()).ToArray()); 

Oops! Como lo señalan los comentarios, omitieron que era ASP.NET, por lo que no se puede inicializar desde una matriz de cadenas; es necesario que lo haga así:

 var items = (from each in inputString.Split(',') select each.Trim()).ToArray(); foreach (var currentItem in items) { targetListBox.Items.Add(new ListItem(currentItem)); } 

Te da una matriz de cadenas por strVar.Split

 "dog, cat, mouse,bird".Split(new[] { ',' });