嘿,我希望能夠刪除整個字符串的開頭,除了結尾。例如:C#從整個字符串中移除整個字符串
http://www.website.com/images/a_image.png
這就是我的網址/串。我想刪除大部分字符串的第一位,所以它最終會被刪除。
a_image.png
什麼是最可靠和最有效的方法呢?
謝謝。
嘿,我希望能夠刪除整個字符串的開頭,除了結尾。例如:C#從整個字符串中移除整個字符串
http://www.website.com/images/a_image.png
這就是我的網址/串。我想刪除大部分字符串的第一位,所以它最終會被刪除。
a_image.png
什麼是最可靠和最有效的方法呢?
謝謝。
string str="http://www.website.com/images/a_image.png";
str=str.Substring(str.LastIndexOf("/")+1);
謝謝你的工作。 :) – 2012-02-03 10:55:04
@DuncanPalmer老實說,Mithrandir的回答是最好也是最穩定的 – 2012-02-03 11:09:05
@OskarKjellin,我認爲你的更好))) – 2012-02-03 11:11:07
Path.GetFileName將爲您做到這一點。
Path.GetFileName("http://www.website.com/images/a_image.png");
返回
a_image.png
假設你想要的是讓你的URL的最後一部分(即最後一個字符/
後的值),那麼你可以使用String.LastIndexOf(...)
方法。所以,你可以這樣做以下:
string url = @"http://www.website.com/images/a_image.png";
int breakIndex = url.LastIndexOf('/');
string lastFragment = url.Substring(breakIndex + 1);
這會給你「a_image.png」的結果。
嘗試
var str = "http://www.website.com/images/a_image.png";
var reqdstr = str.Split('/')[str.Split('/').Count()-1];
我不相信分裂兩次並枚舉數組將是「這樣做的有效方法」。 – 2012-02-03 10:57:28
@BuhBUh你不需要分裂兩次,我只是懶惰,我寫在單行中。你可以拆分一次,並將其傳遞給一個新的變種,以代替它。 – Flowerking 2012-02-03 10:59:15
簡單方法(相當不安全壽):
string a = "http://www.website.com/images/a_image.png";
string b = a.Remove(0, a.LastIndexOf("/") + 1);
Uri myuri = new Uri("http://www.website.com/images/a_image.png
");
String last_part = myuri.Segments[myuri.Segments.Length-1];
或
String last_part = myuri.Segments.Last();
哈哈,你打敗了我。比分割字符串要好得多。我只有兩個便士:'myuri.Segments.Last()'可能會更具可讀性。 – 2012-02-03 10:57:33
斯普利特URL字符串基於斜槓(/),這將返回包含URL的各種組件的數組。使用最後一個索引(array.length -1),它將取回你的圖像
'stone_icon32.png'不是你的URL的一部分。 – 2012-02-03 10:51:14
大部分的字符串是什麼?它是你想要的圖像名稱還是擴展名? – 2012-02-03 10:52:13
使用'LastIndexOf('/')'獲取最後一個'/'的位置,然後使用'Substring'獲取所需的部分。 – ken2k 2012-02-03 10:52:32