2012-04-30 15 views
13

Sto provando a dividere una stringa nel primo spazio e mantenere solo la seconda metà. Quindi, se l'input fosse "1. top of steel", l'output sarebbe "top of steel". Sto lavorando con alcuni esempi diversi da qui e non riesco a farlo funzionare. Pensieri? Grazie.Split string al primo spazio

+3

'string secondHalf = myString.Split (new char [] {''}, 2) [1];' Utilizzare il metodo Split con una dimensione massima sull'array. – BenVlodgi

risposta

27
var myString = "1. top of steel"; 
var newString = myString.Remove(0, myString.IndexOf(' ') + 1); 
1

Si può solo fare:

string myString = "1. top of steel"; //replace this with the input 
string resultString = myString.IndexOf(' ') > -1 
    ? myString.Substring(myString.IndexOf(' ') + 1) 
    : myString; 
+0

Il tuo splitString deve essere un array e anche in questo caso il risultato 'myNewString' sarà' top' perché dividerebbe su ogni spazio non solo sul primo. – jzworkman

+0

È necessario un array per memorizzare il risultato di Split. Inoltre, questo non funzionerà correttamente quando l'input contiene più di uno spazio – Attila

+1

Questo codice non funzionerà, ha troppi bug. 1) splitString deve essere un array. 2) La funzione Split necessita di un array come parametro. 3) Se i primi 2 punti vengono ignorati anche allora restituirà solo l'elemento al 1 ° indice e non il resto della stringa. –

3

Proprio usare qualcosa di simile in seguito,

string[] stringTokens = originalString.Split(new char[] {' '}, 2, StringSplitOptions.RemoveEmptyEntries); 
if(stringTokens.Length >= 2) 
    newString = stringTokens[1]; 
15

Questo è facilmente realizzabile usando Substring:

string myString = "1. top of steel"; 
string newString = myString.Substring(myString.IndexOf(' ') + 1); 

Questo vi darà una notizia tring a partire dal primo spazio.