2011-06-03 53 views

回答

8

您可以使用LastIndexOf方法来获取字符串中最后一个/的位置,并将其传递到Substring方法中,以将字符串修剪掉多少个字符。这应该让你在最后得到Get。

[TestMethod] 
    public void ShouldResultInGet() 
    { 
    string url = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"; 

    int indexOfLastSlash = url.LastIndexOf('/') + 1; //don't want to include the last/

    Assert.AreEqual("Get", url.Substring(indexOfLastSlash)); 
    } 
+0

我会给这个镜头。 – Xaisoft 2011-06-03 13:58:07

+0

问题:如果没有找到斜线会发生什么。它会忽略它还是会抛出异常? – Xaisoft 2011-06-03 14:07:40

+2

它会返回完整的字符串 – Magnus 2011-06-03 14:14:26

9
var s = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"; 
s = s.Substring(s.LastIndexOf("/") + 1); 
1

URI替代/ GET /把/删除等

var uri = new System.Uri("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"); 
string top = Path.GetFileName(uri.LocalPath); 
1

试试

int indexOfLastSlash = url.LastIndexOf('/') + 1; 

string s = url.Remove(0, indexOfLastSlash); 

Assert.AreEqual("Get", s); 

这会删除&之前的所有数据,包括最后一个'/'。

在这里可以正常工作。

-1

我想,这会更有效地工作......

var s = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"; 
if(s.ToLower().Contains("get")) // or do some strict & case sensitive test like /Get, /get as    
            //it will return true if your string contain /getawayfromme/ 
{ 
    s= "Get";      // or whatever 
} 

当你的最终结果将是获取。在上面的分解示例中,如果遇到多个GET,它可能会失败。