我正在尝试子串,但是会抛出异常。
my string "currentUserLogin" is uponet\\xyz
所以我想要的最终结果是xyz
string currentUser = currentUserLogin.Substring(currentUserLogin.LastIndexOf("'\'"));
答案 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所以由于它站在一个单独的编译器不知道如何处理它,正确的使用方式,例如:
等等
希望这会有所帮助:)