I have a string that looks like this: "texthere^D123456_02"
. But I want my result to be D123456
.
this is what i do so far:
if (name.Contains("_"))
{
name = name.Substring(0, name.LastIndexOf('_'));
}
With this I remove at least the _02
, however if I try the same way for ^
then I always get back texthere
, even when I use name.IndexOf("^")
I also tried only to check for ^
, to get at least the result:D123456_02
but still the same result.
I even tried to name.Replace("^"
and then use the substring way I used before. But again the result stays the same.
texthere
is not always the same length, so .Remove()
is out of the question.
What am I doing wrong?
Thanks
When call Substring
you should not start from 0, but from the index found:
String name = "texthere^D123456_02";
int indexTo = name.LastIndexOf('_');
if (indexTo < 0)
indexTo = name.Length;
int indexFrom = name.LastIndexOf('^', indexTo - 1);
if (indexFrom >= 0)
name = name.Substring(indexFrom + 1, indexTo - indexFrom - 1);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With