Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

First split then join a subset of a string

I have an input string as follows:

thumb_634735515600845357tchayat_november_200612.jpg

What I want to do is first split this string by _. And then take the resulting tokens at positions 1 to n and join them.

Specifically, with respect to my sample input, here is my desired output. As you can see, thumb_ has been removed from the front of the string:

634735515600845357tchayat_november_200612.jpg

I know how to do the split. But then how do I do the join step that follows? I do realize that I can use a for loop to do the join. But is there a better way? I can't use a sub-string approach to do the join step because I have data before thumb_.

Finally, note that the _ character that follows thumb is always the first instance of _.

like image 843
DarthVader Avatar asked Jun 14 '12 01:06

DarthVader


1 Answers

Since the _ after the thumb is always the first instance then Substring should be perfectly viable in conjunction with IndexOf.

string newString = myString.Substring(myString.IndexOf("_") + 1);

This should take the substring starting at the character immediately following the first instance of the _ character.

If you wish to get the second index of _, here's what I recommend:

int first = myString.IndexOf("_");
int second = mystring.Substring(first).IndexOf("_");

See this answer by Jon Skeet to the question "Index of the nth occurrence of a string?" for support for this approach.

like image 136
Joel Etherton Avatar answered Oct 15 '22 02:10

Joel Etherton