Вот что я пробовал:

string myURL= "http://mysite.com/articles/healthrelated";
String idStr = myURL.Substring(myURL.LastIndexOf('/') + 1);

Мне нужно получить «связанный со здоровьем», то есть текст после последней косой черты в URL-адресе. Теперь проблема в том, что мой URL-адрес тоже может быть таким:

"http://mysite.com/articles/healthrelated/"   

То есть "косая черта" в конце этого текста тоже. Теперь последняя косая черта становится ПОСЛЕ "связанного со здоровьем", поэтому результат, который я получаю,

String idStr = myURL.Substring(myURL.LastIndexOf('/') + 1);

Пустая строка ..

Каким должен быть мой код, чтобы я всегда получал этот текст «связанный со здоровьем», независимо от того, есть ли в конце косая черта или нет. Мне просто нужно как-то получить этот текст.

0
Infinity 26 Авг 2011 в 09:13

3 ответа

Лучший ответ

Попробуй это.

var lastSegment = url
    .Split(new string[]{"/"}, StringSplitOptions.RemoveEmptyEntries)
    .ToList()
    .Last();
3
naveen 26 Авг 2011 в 05:25

Почему бы вам не использовать класс .NET Uri и свойство segments:

http://msdn.microsoft.com/en-us/library/system.uri.segments.aspx

1
Madhur Ahuja 26 Авг 2011 в 05:19

Что вы можете сделать в этой ситуации, так это либо использовать REGEX (в котором я не эксперт, но я уверен, что здесь есть другие люди;)) или просто:

string[] urlParts = myURL.Split('/');

И берем последнюю строку в этом массиве.

0
MADMap 26 Авг 2011 в 05:19