2013-10-02 21 views
5

Ho una stringa che si compone di spazi continui comeCome dividere una stringa con due spazi continui

a(double space)b c d (Double space) e f g h (double space) i 

diviso come

a 
b c d 
e f g h 
i 

attualmente sto provando in questo modo

Regex r = new Regex(" +"); 
     string[] splitString = r.Split(strt); 
+0

hai provato Split ("")? –

+0

@bobek Questo non funzionerebbe – Servy

+0

.Split ("Doublespace")? – sgud

risposta

13

È possibile utilizzare String.Split:

var items = theString.Split(new[] {" "}, StringSplitOptions.None); 
+0

Grazie funziona per me – Anjali

3

È possibile utilizzare il metodo String.Split.

restituisce una matrice di stringa che contiene le sottostringhe in questa stringa che sono delimitati da elementi di una matrice di stringa specificata. Un parametro specifica se restituire elementi di array vuoti.

string s = "a b c d e f g h i"; 
var array = s.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries); 
foreach (var element in array) 
{ 
    Console.WriteLine (element); 
} 

uscita sarà;

a 
b c d 
e f g h 
i 

Ecco un DEMO.

1

Usa espressione regolare è una soluzione elegante

string[] match = Regex.Split("a b c d e f g h i", @"/\s{2,}/", RegexOptions.IgnoreCase); 
+1

Come si divide la stringa? –

+0

leggi questi: http://www.dotnetperls.com/regex-match –

+0

So come funziona 'Regex.Match'. Non penso che raggiunga ciò che l'OP sta chiedendo. '-1' da me. –

3
string s = "a b c d e f g h i"; 
var test = s.Split(new String[] { " " }, StringSplitOptions.RemoveEmptyEntries); 

Console.WriteLine(test[0]); // a 
Console.WriteLine(test[1]); // b c d 
Console.WriteLine(test[2]); // e f g h 
Console.WriteLine(test[3]); // i 

Example

Un altro modo sarebbe quello di usare le espressioni regolari, che consentirebbero di dividere il qualsiasi spazio bianco su due personaggi:

string s = "a  b c d e f g h  \t\t i"; 
var test = Regex.Split(s, @"\s{2,}"); 

Console.WriteLine(test[0]); // a 
Console.WriteLine(test[1]); // b c d 
Console.WriteLine(test[2]); // e f g h 
Console.WriteLine(test[3]); // i 

Example