Come divido una stringa in più valori?
-
04-07-2019 - |
Domanda
Come dividi una stringa?
Diciamo che ho una stringa " cane, gatto, topo, uccello "
Il mio vero obiettivo è quello di inserire ciascuno di quegli animali in una listBox, in modo che diventino elementi in una casella di riepilogo.
ma penso di avere l'idea di come inserire quegli elementi se so come dividere la stringa. o qualcuno conosce un modo migliore per farlo?
sto usando asp c #
Soluzione
string[] tokens = text.Split(',');
for (int i = 0; i < tokens.Length; i++)
{
yourListBox.Add(new ListItem(token[i], token[i]));
}
Altri suggerimenti
Hai provato String.Split ? Potrebbe essere necessario un po 'di post-elaborazione per rimuovere gli spazi bianchi se vuoi " a, b, c " per finire come {"a", "" b "," c "ma" ma a, c " per finire come {" a b " ;, " c "}.
Ad esempio:
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;
}
Versione Linq inutile;
from s in str.Split(',')
where !String.IsNullOrEmpty(s.Trim())
select s.Trim();
O semplicemente:
targetListBox.Items.AddRange(inputString.Split(','));
O questo per garantire che le stringhe siano tagliate:
targetListBox.Items.AddRange((from each in inputString.Split(',')
select each.Trim()).ToArray<string>());
Oops! Come sottolineano i commenti, ho perso che era ASP.NET, quindi non è possibile inizializzare dall'array di stringhe - è necessario farlo in questo modo:
var items = (from each in inputString.Split(',')
select each.Trim()).ToArray<string>();
foreach (var currentItem in items)
{
targetListBox.Items.Add(new ListItem(currentItem));
}
Ti dà un array di stringhe di strVar.Split
"dog, cat, mouse,bird".Split(new[] { ',' });