Splittare una o più parole in una stringa in C#

martedì 23 marzo 2010 - 11.18

aldopoli Profilo | Newbie

Salve a tutti,

ho una stringa che contiene più parole, tipo:

"tar lam pav srl mant"

oppure

"los mem min"

come faccio a recuperarne il contenuto delle singole parole "tar","lam", ecc.ecc. ed metterle in un numero variabile di stringhe?

Grazie a tutti

Saluti

Aldopoli

AntCiar Profilo | Expert

Ciao.

Come hai inserito nel titolo del thread basta fare uno split.

string[] Parole = vrb.Split(" ".toCharArray());


vrb è la variabile contenente la stringa delle parole da splittare mentre 'parole' è un array di stringhe.
Per sapere quante parole ci sono basta fare:

parole.Length;

mentre per ciclarle basta fare:

for each string parola in Parole
{

nella variabile 'parola' c'è la singola parola della lista

}

Siccome ho scritto il codice direttamente qui può darsi che ci sia qualche errore di maiuscola/minuscola.

Ciao ciao.


Cristian Barca

aldopoli Profilo | Newbie

>Ciao.
>
>Come hai inserito nel titolo del thread basta fare uno split.
>
>string[] Parole = vrb.Split(" ".toCharArray());
>
>
>vrb è la variabile contenente la stringa delle parole da splittare
>mentre 'parole' è un array di stringhe.
>Per sapere quante parole ci sono basta fare:
>
>parole.Length;
>
>mentre per ciclarle basta fare:
>
>for each string parola in Parole
>{
>
>nella variabile 'parola' c'è la singola parola della lista
>
>}
>
>Siccome ho scritto il codice direttamente qui può darsi che ci
>sia qualche errore di maiuscola/minuscola.
>
>Ciao ciao.
>
>
>Cristian Barca

Ciao Cristian

ti ringrazio, ma non mi è chiaro il metodo toCharArray() che applichi a string[] Parole = vrb.Split(" ".toCharArray());

Saluti

Aldopoli

AntCiar Profilo | Expert

Ciao.

Il metodo Split accetta come primo parametro un char oppure un array di stringhe.

utilizzo " ".ToCharArray() in modo da ottenere dalla stringa " " l'equivalente in Char. .ToCharArray() genera un array di Char dalla striga a cui viene applicato. Essendo " " composto da un solo carattere, restituisce solo l'equivalente in Char.

Potevo anche usare char.Parse(" ") oppure Char.FromUtf32(codice ascii dello spazio)

ciao
Cristian Barca

aldopoli Profilo | Newbie

Ho risolto!

Grazie Cristian

Saluti

Aldopoli

aiedail92 Profilo | Expert

Ciao

In realtà, dato che il parametro è definito come params (ParamArray in VB), puoi passare direttamente il carattere senza complicarti la vita usando quei metodi. In pratica puoi scrivere così:

string[] parole = str.Split(' '); // string[] test = str.Split('1', '2', '3', '4', ...);

Che equivale a scrivere

string[] parole = str.Split(new char[] { ' ' }); // string[] test = str.Split(new char[] { '1', '2', '3', '4', ... });

Ma è chiaramente molto più leggibile.

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5