R00059159
R00059159

Reputation: 167

Getting string after a specific slash

I have a string and I want to get whatever is after the 3rd slash so. I don't know of any other way I can do this, I don't really want to use regex if I dont need it.

http://www.website.com/hello for example would be hello

I have used str.LastIndexOf('/') before like:

          string str3 = str.Substring(str.LastIndexOf('/') + 1);

However I am still trying to figure out how to do this for a slash that is not the first or last

Upvotes: 1

Views: 3982

Answers (3)

Will Dean
Will Dean

Reputation: 39500

If you're manipulating URLs, then use the Uri class instead of rolling your own.

But if you want to do it manually for educational reasons, you could do something like this:

int startPos = 0;
for(int i  = 0; i < 3; i++)
{
   startPos = s.IndexOf('/', startPos)+1;
}

var stringOfInterest = s.Substring(startPos);

There are lots of ways this might fail if the string isn't in the form you expect, so it's just an example to get you started.

Although this is premature optimisation, this sort of approach is more efficient than smashing the whole string into components and putting them back together again.

Upvotes: 0

Steve B
Steve B

Reputation: 37660

As suggested by C.Evenhuis, you should rely on the native System.Uri class:

string url = "http://stackoverflow.com/questions/20213490/getting-string-after-a-specific-slash"
Uri asUri = new Uri(url);
string result = asUri.LocalPath;
Console.WriteLine(result);

(live at http://csharpfiddle.com/LlLbriBm)

This will output:

/questions/20213490/getting-string-after-a-specific-slash

If you don't want the first / in the result, simply use:

string url = "http://stackoverflow.com/questions/20213490/getting-string-after-a-specific-slash"
Uri asUri = new Uri(url);
string result = asUri.LocalPath.TrimStart('/');
Console.WriteLine(result);

You should take a look in the System.Uri class documentation. There's plenty of property that can you can play with, depending on what you want to actually keep in the url (url parameters, hashtag, etc.)

Upvotes: 2

Hossain Muctadir
Hossain Muctadir

Reputation: 3626

    string s = "some/string/you/want/to/split";
    string.Join("/", s.Split('/').Skip(3).ToArray());

Upvotes: 2

Related Questions