鑑於此字符串:如何獲取字符串的最後部分?
http://s.opencalais.com/1/pred/BusinessRelationType
我想它的最後一部分:「BusinessRelationType」
我一直在想扭轉了整個字符串,然後找第一個「/」,採取一切在那的左邊,並且相反。但是,我希望有一個更好/更簡潔的方法。思考?
謝謝,保羅
鑑於此字符串:如何獲取字符串的最後部分?
http://s.opencalais.com/1/pred/BusinessRelationType
我想它的最後一部分:「BusinessRelationType」
我一直在想扭轉了整個字符串,然後找第一個「/」,採取一切在那的左邊,並且相反。但是,我希望有一個更好/更簡潔的方法。思考?
謝謝,保羅
一行代碼使用LINQ:
string lastPart = text.Split('/').Last();
您可以使用String.LastIndexOf
。
int position = s.LastIndexOf('/');
if (position > -1)
s = s.Substring(position + 1);
另一種選擇是使用Uri
,如果這就是你所需要的。這有解析URI的其他部分,並與查詢字符串處理好,例如一個好處:BusinessRelationType?q=hello world
Uri uri = new Uri(s);
string leaf = uri.Segments.Last();
您可以使用string.LastIndexOf
找到最後/然後Substring
後得到的一切:
int index = text.LastIndexOf('/');
string rhs = text.Substring(index + 1);
請注意,如LastIndexOf
返回-1,如果沒有找到該值,則第二行將返回整個字符串(如果文本中沒有/)。
if (!string.IsNullOrEmpty(url))
return url.Substring(url.LastIndexOf('/') + 1);
return null;
這裏是做這一個相當簡潔的方式:
str.Substring(str.LastIndexOf("/")+1);
或者您可以使用正則表達式/([^/]*?)$
找到匹配
每當我發現自己寫代碼如LastIndexOf("/")
,我感覺t我可能正在做一些不安全的事情,並且可能有更好的方法可用。
當您使用URI時,我會推薦使用System.Uri
類。這爲您提供驗證和安全,方便地訪問URI的任何部分。
Uri uri = new Uri("http://s.opencalais.com/1/pred/BusinessRelationType");
string lastSegment = uri.Segments.Last();
小提示任何愚蠢或眛的人(或任何人誰最近放棄咖啡,是愚蠢的,眛,不高興......像我自己) - Windows的文件路徑使用'\'
...所有的這裏的例子另一方面使用'/'
。
因此,使用'\\'
來獲得Windows文件路徑的結尾! :)
這裏的解決方案是完美的和完整的,但也許這可能會阻止一些其他可憐的靈魂浪費我一小時的時間!
在我看來,使用@「\ path \ to \ something」是一種更清潔的方式:) – AntoineLev 2015-01-30 15:17:33
Path.GetFileName
認爲/和\爲分隔符。
Path.GetFileName ("http://s.opencalais.com/1/pred/BusinessRelationType") =
"BusinessRelationType"
懶惰不起作用吧,不過你在這裏不需要它。 '[^ /] * $'會做。 – Kobi 2010-08-02 11:33:47