子串\在C#中

时间:2015-09-30 14:22:52

标签: c# asp.net-3.5

我正在尝试子串,但是会抛出异常。

 my string  "currentUserLogin" is uponet\\xyz

所以我想要的最终结果是xyz

string currentUser = currentUserLogin.Substring(currentUserLogin.LastIndexOf("'\'"));

3 个答案:

答案 0 :(得分:3)

尝试:

string currentUser = currentUserLogin.Substring(currentUserLogin.LastIndexOf("\\") + 1);

我还应该指出,您需要一些实际的错误处理。如果\来自字符串的最后,这将抛出IndexOutOfRangeException

相关文件: https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx

答案 1 :(得分:2)

更安全的方法是首先检查它是否在字符串中,或​​检查是否index > -1

int index = currentUserLogin.LastIndexOf('\\');
if (index > -1)
{
    if (index + 1 == currentUserLogin)
    {
        currentUser = string.Empty;
    }
    else
    {
        currentUser = currentUserLogin.SubString(index + 1);
    }
}

答案 2 :(得分:1)

这就像魅力一样

        string currentUserLogin = "uponet\\xyz"; //Login
        string[] currentUserParts = currentUserLogin.Split('\\');// splits in parts of [uponet],[],[xyz]
        string currentUser = currentUserParts[currentUserParts.Count() - 1]; // get last from array

\是一个逃避的charector所以由于它站在一个单独的编译器不知道如何处理它,正确的使用方式,例如:

  • \ r \ n这是一个新行
  • \\转换为\

等等

希望这会有所帮助:)