2013-02-21 1 views
29

J'ai une chaîne en C# pour laquelle je dois trouver un mot spécifique "code" dans la chaîne et doit obtenir la chaîne restante après le mot "code".Besoin d'obtenir une chaîne après un "mot" dans une chaîne en C#

La chaîne est

"Description de l'erreur, Code: -1"

donc je dois trouver le mot Code dans la chaîne ci-dessus et je dois obtenir le code d'erreur. J'ai vu regex mais maintenant clairement compris. Y a-t-il un moyen simple?

+1

Que se passerait-il 'apparaître deux fois dans recueil HSC ladite chaîne? – LukeHennerley

+1

Pouvez-vous clarifier - quel est le problème avec regex? Qu'avez-vous essayé et quel code avez-vous actuellement? –

+0

@LukeHennerley code peut apparaître deux fois ou plus, mais à la fin, la définition du code d'erreur sera ** code: code d'erreur ** – Narayan

Répondre

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

Quelque chose comme ça?

Peut-être que vous devriez traiter le cas des disparus 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" 

Vous pouvez modifier la chaîne à diviser par - si vous utilisez "code : ", le second élément du tableau retourné ([1]) contiendra "-1", en utilisant votre exemple.

+0

Split ne prend que params [] char, il ne prend pas la chaîne 'params [] ':) – LukeHennerley

+3

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

+1

Je voulais dire que cela ne compile pas: PI stand corrigée! – LukeHennerley

0

utilisation de la fonction indexOf()

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

de façon plus simple (si votre mot clé est seulement "code") peut être:

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

@LukeHennerley c'est une approche très commune pour initialiser le tableau de chaînes – Nogard

Questions connexes