2013-02-21 187 views
29

我在c#中有一個字符串,我必須在字符串中找到一個特定的單詞「代碼」,並且必須在單詞「代碼」。需要在c中的字符串中的「字」後得到一個字符串

的字符串是

「錯誤描述,代碼:-1」

,所以我必須要找到這個詞在上面的字符串代碼,我必須得到錯誤代碼。 我看過正則表達式,但現在已經很清楚。有沒有簡單的方法?

+1

會發生什麼,應該'code'中說串出現兩次? – LukeHennerley 2013-02-21 09:28:32

+1

你能澄清 - 正則表達式有什麼問題?你有什麼嘗試,你現在有什麼代碼? – 2013-02-21 09:32:33

+0

@LukeHennerley代碼可能會出現兩次或更多,但最後,錯誤代碼定義將是**代碼:錯誤代碼** – Narayan 2013-02-21 09:33:26

回答

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

是這樣的嗎?

也許你應該處理缺少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" 

你可以調整串由分裂 - 如果你使用"code : ",返回數組的第二件([1])將包含"-1",使用你的例子。

+0

拆分只需要'params [] char',它不需要'params [] string ':) – LukeHennerley 2013-02-21 09:29:34

+3

@LukeHennerley - [真的嗎?](http://msdn.microsoft.com/en-gb/library/system.string.split.aspx) – Oded 2013-02-21 09:30:06

+1

我的意思是說這不會編譯:PI支架糾正! – LukeHennerley 2013-02-21 09:31:27

0

使用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

更簡單的方法(如果你唯一的關鍵字是 「代碼」)可能是:

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

@LukeHennerley它是初始化字符串數組很常見的方法 – Nogard 2013-02-21 09:32:25

相關問題