我在C#中有TreeView,我想抓住“:”符号后的所有内容,但我不知道在哪里或该怎么做actullay ...
if (TV.Focused)
{
string str = "";
string NameStr = "";
if (TV.SelectedNode.Text == "دليل الحسابات")
return;
for (int i = 0; i <= TV.SelectedNode.Text.Length - 1; i++)
{
if (TV.SelectedNode.Text.ToCharArray(i, 1).ToString() == " ")
{
if (TV.SelectedNode.Text.ToCharArray(i + 1, 1).ToString() == ":")
break;
}
str += TV.SelectedNode.Text.ToCharArray(i, 1).ToString();
NameStr = TV.SelectedNode.Text.ToString().Substring(str.Length + 2, TV.SelectedNode.Text.ToString().Length - str.Length - 2);
}
txtAccID.Text = str;
txtAccName.Text = NameStr;
}
}
答案 0 :(得分:0)
这可以通过几种方式处理
使用Split
var input = "hello:world";
var split = input.Split(':');
Console.WriteLine(split[0]); //outputs "hello"
Console.WriteLine(split[1]); //outputs "world"
或使用IndexOf
var input = "hello:world";
var positionOfColon = input.IndexOf(':');
var afterColon = input.Substring(colonPosition + 1, input.Length - colonPosition - 1);
Console.WriteLine(afterColon); //outputs "world"
如评论中所述,您可能需要考虑输入中包含多个冒号的情况。
例如,如果您有字符串hello:world:three
,则Split
将创建一个包含三个项hello
world
和three
的数组,但可能不会成为你想成为的人。如果您想在 first 冒号之后输入所有内容,则最好使用IndexOf
,它会返回world:three
。如果只想最后一个冒号后面是什么,则可以使用LastIndexOf而不是IndexOf
,那将只返回three
。