2013-02-21 10 views
29

Mam ciąg w C#, dla których muszę znaleźć określone słowo "kod" w ciągu i muszą uzyskać pozostały ciąg po słowo "kod".Potrzebuję uzyskać ciąg po "słowo" w ciągu C#

Ciąg jest

"Opis błędu, kod: -1"

więc muszę znaleźć słowo kodowew powyższym ciąg i muszę dostać Kod błędu. Widziałem regex, ale teraz wyraźnie zrozumiałe. Czy istnieje jakiś prosty sposób?

+1

Co by się stało, gdyby 'code' pojawiają się dwa razy we wspomnianym ciągu? – LukeHennerley

+1

Czy możesz wyjaśnić - na czym polega problem z regex? Co wypróbowałeś i jaki masz kod? –

+0

@LukeHennerley kod może pojawić się dwa razy lub więcej, ale na końcu definicja kodu błędu będzie ** kod: kod błędu ** – Narayan

Odpowiedz

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

Coś takiego?

Może powinien obsługiwać przypadek brakuje 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" 

Można dostosować ciąg podzielić przez - jeśli używasz "code : ", drugi członek zwróconej tablicy ([1]) będzie zawierać "-1", używając twojego przykładu.

+0

Podział tylko bierze 'params [] char', nie bierze' params [] ciąg znaków ':) – LukeHennerley

+3

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

+1

Miałem powiedzieć, że to się nie kompiluje: PI stoisko poprawione! – LukeHennerley

0

użycie indexOf() funkcja

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

prostszy sposób (jeśli tylko słowo kluczowe jest "code") mogą być:

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

@LukeHennerley to bardzo powszechne podejście do inicjowania tablicy łańcuchów – Nogard

Powiązane problemy