在C#中从字符串切割

时间:2010-12-21 15:52:28

标签: c# string treeview substring

我的字符串看起来像那样:aaa / b / cc / dd / ee。我想在没有/的情况下剪切第一部分。我该怎么做?我有很多字符串,它们的长度不一样。我尝试使用Substring(),但是/?

我想在第一个treeNode中添加'aaa',在第二个树上添加'b'等等。我知道如何向treeview添加内容,但我不知道如何才能收到这些部分。

5 个答案:

答案 0 :(得分:5)

也许Split()方法就是您所追求的?

string value = "aaa/b/cc/dd/ee";

string[] collection = value.Split('/');
  

标识此实例中由数组中指定的一个或多个字符分隔的子字符串,然后将子字符串放入String数组中。

根据您与TreeView(ASP.Net?WinForms?)相关的更新,您可以这样做:

foreach(string text in collection)
{
    TreeNode node = new TreeNode(text);
    myTreeView.Nodes.Add(node);
}

答案 1 :(得分:4)

使用SubstringIndexOf查找第一个/

的位置

获得第一部分:

// from memory, need to test :)
string output = String.Substring(inputString, 0, inputString.IndexOf("/")); 

只剪切第一部分:

// from memory, need to test :)
string output = String.Substring(inputString, 
                                 inputString.IndexOf("/"),     
                                 inputString.Length - inputString.IndexOf("/"); 

答案 2 :(得分:1)

您可能想要这样做:

string[] parts = "aaa/b/cc/dd/ee".Split(new char[] { '/' });

答案 3 :(得分:0)

听起来这是...... Regular Expressions的工作!

答案 4 :(得分:0)

一种方法是使用string.Split将字符串拆分为数组,然后使用string.Join将所需数组的任何部分转换为新字符串。

例如:

var parts = input.Split('/');
var processedInput = string.Join("/", parts.Skip(1));

这是一种通用方法。如果您只需要进行非常具体的处理,那么使用string.IndexOf可以提高效率,例如:

var processedInput = input.Substring(input.IndexOf('/') + 1);