2013-02-21 20 views
29

Sto avendo una stringa in C# per la quale devo trovare una parola specifica "codice" nella stringa e devo ottenere la stringa rimanente dopo il parola "codice".È necessario ottenere una stringa dopo una "parola" in una stringa in C#

La stringa è

"Descrizione errore, codice: -1"

quindi devo trovare la parola di codice nella stringa sopra e devo ottenere il codice di errore. Ho visto regex ma ora ho capito chiaramente. C'è un modo semplice?

+1

Che cosa accadrebbe dovrebbero 'Codice delle apparire due volte in detta stringa? – LukeHennerley

+1

Puoi chiarire: qual è il problema con regex? Che cosa hai provato e quale codice hai attualmente? –

+0

Il codice @LukeHennerley può apparire due o più volte, ma alla fine la definizione del codice di errore sarà ** codice: codice di errore ** – Narayan

risposta

61
string toBeSearched = "code : "; 
string code = myString.Substring(myString.IndexOf(toBeSearched) + toBeSearched.Length); 

Qualcosa di simile?

Forse si dovrebbe gestire il caso di perdere code : ...

string toBeSearched = "code : "; 
int ix = myString.IndexOf(toBeSearched); 

if (ix != -1) 
{ 
    string code = myString.Substring(ix + toBeSearched.Length); 
    // do something here 
} 
12
var code = myString.Split(new [] {"code"}, StringSplitOptions.None)[1]; 
// code = " : -1" 

È possibile modificare la stringa da raggruppati per - se si utilizza "code : ", il secondo membro della matrice restituita ([1]) conterrà "-1", usando il tuo esempio.

+0

Split richiede solo 'params [] char', non ci vuole' params [] stringa ':) – LukeHennerley

+3

@LukeHennerley - [Davvero?] (Http://msdn.microsoft.com/en-gb/library/system.string.split.aspx) – Oded

+1

Io volevo dire che questo non è compilato: stand PI corretto! – LukeHennerley

0

uso indexOf() funzione

string s = "Error description, code : -1"; 
int index = s.indexOf("code"); 
if(index != -1) 
{ 
    //DO YOUR LOGIC 
    string errorCode = s.Substring(index+4); 
} 
7

semplice metodo (se la vostra unica parola chiave è "codice") potrebbe essere:

string ErrorCode = yourString.Split(new string[]{"code"}, StringSplitOptions.None).Last(); 
+0

@LukeHennerley è un approccio molto comune per inizializzare array di stringhe – Nogard

Problemi correlati