在C#中使用斜杠拆分字符串

时间:2012-04-30 16:42:54

标签: c#

我有以下类型的字符串。一个有三个斜线,一个有两个:

a) filepath = "/F00C/Home/About"

b) filepath = "/Administration/Menus"

我需要做的是一个函数,它允许我获取“home”和“administration”的值并放入topMenu变量并获取“Menus”和“About”的值并将其放入subMenu变量。

我熟悉slashes = filePath.Split('/');但我的情况不是那么简单,因为有两种类型的变量,在这两种情况下我只需要得到最后两个字。

有没有一种简单的方法可以让Split功能在没有任何复杂功能的情况下工作?

3 个答案:

答案 0 :(得分:3)

这样的事情出了什么问题?

var splits = filePath.Split('/');
var secondLast = splits[splits.Length-2];
var last = splits[splits.Length-1];

备注:

  • 缺少对splits数组长度(必须> = 2)的任何检查。
  • 此外,此代码仅适用于正斜杠('/')。要支持反斜杠和正斜杠分隔符,请查看@Saeed's answer

答案 1 :(得分:0)

var items = filePath.Split('/');
first = items[items.Length - 2];
second = items[items.Length - 1];

此外,如果这是一个实际路径,您可以使用Path

var dir = Path.GetDirectoryName(filePath);
dir  = Path.GetFileName(dir);
var file = Path.GetFileName(filePath);

编辑我按照讨论我的digEmAll的方式编辑了Path版本。

答案 2 :(得分:0)

我错过了什么或你只是想要:

var split = filepath.Split('/');
var last = split[split.Length -1];
var prev = split[split.Length -2];