Equivalent to PHP strstr() in Unity to find a string?

Is there an equivalent of PHP’s strstr() - where you can determine if a string exists in another string?

This isn’t really a Unity question so much as it is a .net question. Since Unity runs on a .net implementation (technically mono, but it’s close enough), you’d look to the MSDN documentation for this stuff.

In this case you might use String.IndexOf(string) or some other method in the String class.

I barely used PHP in the past but i guess this will do what strstr does:

// C#
public static string strstr(string hayStack, string needle, bool beforeNeedle)
{
    if (beforeNeedle)
        return hayStack.Substring(0,hayStack.IndexOf(needle));
    else
        return hayStack.Substring(hayStack.IndexOf(needle));
}
public static string strstr(string hayStack, string needle)
{
    return strstr(hayStack,needle,false);
}

edit

If you need that function alot it might be useful to make it an extention function of string:


//C#
public static class StringExtention
{
    public static string strstr(this string hayStack, string needle, bool beforeNeedle)
    {
        if (beforeNeedle)
            return hayStack.Substring(0,hayStack.IndexOf(needle));
        else
            return hayStack.Substring(hayStack.IndexOf(needle));
    }
    public static string strstr(this string hayStack, string needle)
    {
        return strstr(hayStack,needle,false);
    }
}

As long as you have this class somewhere in your project you can just write:

string myString = "MyEmail@examle.com";
string name = myString.strstr("@",true);   // name will be "MyEmail"

// Or just that way ( but that's kinda useless xD )
string host = "MyEmail@examle.com".strstr("@"); // host will be "@examle.com"

second edit

If you just want to seperate the two parts it’s easier to use Split() since it removes the “needle”.

//C#
string myString = "MyEmail@examle.com";
string[] strParts = myString.Split('@');
string name = strParts[0];               // "MyEmail"
string host = strParts[1];               // "examle.com"