如何剪切以下字符串?

3
我有一个字符串:"http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"。我想从最后一个斜杠截取所有内容,只保留"Get"
5个回答

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

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

问题:如果它找不到斜杠会发生什么?它会忽略它还是会抛出异常? - Xaisoft
2
它将返回完整的字符串。 - Magnus

3

1

如果您使用良好格式的 /Get /Put /Delete 等,则可以使用 URI 替代方案

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

这将删除最后一个斜杠(/)及其之前的所有数据。

在这里运行良好。


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