在C#中截取字符串

6

我的字符串看起来像这样:aaa/b/cc/dd/ee。我想去掉第一个没有斜杠的部分。我有很多字符串,它们的长度不同。我尝试使用Substring(),但是对于斜杠怎么处理呢?

我想将'aaa'添加到第一个treeNode中,'b'添加到第二个等等。我知道如何向treeview添加内容,但我不知道如何获取这些部分。


4
根据您的示例,期望的输出是什么? - pdiddy
你想要获取第一部分还是去除第一部分?如果是前者,你可以这样做:"aaa/b/cc/dd/ee".Split('/')[0]。 - Andrey
我几乎可以保证这是一项作业任务。最简单的方法是处理每个子字符串并将其放入数组中。您可以使用while循环和计数整数来分部遍历字符串。一旦构建了数组,您就可以从那里开始。 - Security Hound
5个回答

6
也许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);
}

5

使用SubstringIndexOf来查找第一个/的位置。

获取第一部分:

// 从内存中获取,需要测试 :)
string output = String.Substring(inputString, 0, inputString.IndexOf("/")); 

仅切割第一部分:

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

1

你可能想要做的是:

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

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);

0

4
古老的中国谚语:“面对问题,程序员可能决定使用正则表达式。程序员现在有两个问题”。 :) (注:原文已经是英文了,直接翻译成中文即可) - Jamiec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接