2015-08-14 61 views
-2

我有這個字符串數組:如何解析字符串中的特定文本?

 private String[] ipaddresses = new String[]{ 
    "http://192.168.1.18:8098/?cmd=nothing", 
    "http://192.168.1.16:8098/?cmd=nothing"}; 

我要的是具有以下落得:

"http://192.168.1.18:8098/?cmd=" 

這是我當前如何獲得該值:

iptouse = ipaddresses[i].Substring(0, 26); 

問題是,Substring(0, 26)正在工作,如果字符串是,例如:

http://10.0.0.5:8098/?cmd=nothing

如何在所有情況下解析「cmd =」的結尾?

+0

如果輸入的是Uri,則使用'Uri'類和'HttpUtility.ParseQueryString'來提取數據。既然你沒有指定數組中存儲了什麼值,並且不清楚「解析直到cmd =」什麼意思實際上意味着很難提供正確的答案。 –

+0

@ Nighthawk441 - 可能應該是「從Uri獲取查詢字符串」之一的dup,但是我不清楚OP究竟在尋找什麼以及輸入字符串的其他變體是什麼。 –

+0

是的,你說得對。 –

回答

2

要得到相同的輸出,我會做這個

string ipaddress = ipaddresses[i].Substring(0,ipaddresses[i].LastIndexOf("=")+1); 
1

我會建議尋找到String.Split方法。這裏有一個例子:

string ip = "http://192.168.1.18:8098/?cmd=nothing".Split('=')[0] + "="; 
Console.WriteLine(ip); // "http://192.168.1.18:8098/?cmd=" 

這將分裂的「=」,「=」號返回之前的一切,然後追加「=」到它的結束。

在你的情況,這將是以下幾點:

iptouse = ipaddresses[i].Split('=')[0] + "="; 

這個答案假定cmd永遠是第一個查詢參數,但假設您提供的格式總是這樣,它會工作得很好。