从URI获取页面名称,两个字符之间的子串

时间:2014-01-30 01:38:51

标签: c# windows-phone-8 substring

如果我有

,我想从URI中获取页面名称
"/Pages/Alarm/AlarmClockPage.xaml"

我想获得AlarmClockPage

我试过

//usage GetSubstring("/", ".", "/Pages/Alarm/AlarmClockPage.xaml")
 public static string GetSubstring(string a, string b, string c)
 {  
     string str = c.Substring((c.IndexOf(a) + a.Length),
          (c.IndexOf(b) - c.IndexOf(a) - a.Length));

     return str;
 }

但是因为搜索的字符串可能包含一个或多个正斜杠,所以我认为这种方法在这种情况下不起作用。

那么我如何考虑可能出现的多个正斜杠?

3 个答案:

答案 0 :(得分:2)

为什么不使用框架中已有的方法?

System.IO.Path.GetFileNameWithoutExtension(@"/Pages/Alarm/AlarmClockPage.xaml");

答案 1 :(得分:0)

如果您只想使用字符串函数,可以尝试:

var startIdx = pathString.LastIndexOf(@"/");
var endIdx = pathString.LastIndexOf(".");
if(endIdx!=-1)
{
    fileName = pathString.Substring(startIdx,endIdx);
}
else
{
    fileName = pathString.Substring(startIdx);
}

答案 2 :(得分:0)

它从给定的文件路径中提供文件名。试试这个

string pageName = System.IO.Path.GetFileName(@"/Pages/Alarm/AlarmClockPage.xaml");