40

在我的应用程序中,我附加了一个字符串来创建生成 URL 的路径。现在我想在按下后退按钮时删除附加的字符串。

假设这是字符串:

/String1/String2/String3/String4/String5

现在我想要一个这样的字符串:

/String1/String2/String3/String4/

我怎样才能做到这一点?

4

5 回答 5

64

您可以使用lastIndexOf()相同的方法

if (null != str && str.length() > 0 )
{
    int endIndex = str.lastIndexOf("/");
    if (endIndex != -1)  
    {
        String newstr = str.substring(0, endIndex); // not forgot to put check if(endIndex != -1)
    }
}  
于 2012-05-31T06:13:50.367 回答
44
String whatyouaresearching = myString.substring(0, myString.lastIndexOf("/"))
于 2012-05-31T06:14:38.043 回答
6

您可以使用空安全的org.apache.commons.lang3.StringUtils.substringBeforeLast 。

从javadoc:

// The symbol * is used to indicate any input including null.
StringUtils.substringBeforeLast(null, *)      = null
StringUtils.substringBeforeLast("", *)        = ""
StringUtils.substringBeforeLast("abcba", "b") = "abc"
StringUtils.substringBeforeLast("abc", "c")   = "ab"
StringUtils.substringBeforeLast("a", "a")     = ""
StringUtils.substringBeforeLast("a", "z")     = "a"
StringUtils.substringBeforeLast("a", null)    = "a"
StringUtils.substringBeforeLast("a", "")      = "a"

Maven依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.8</version>
</dependency>
于 2016-03-03T15:25:43.203 回答
3

最简单的方法是...

        String path = "http://zareahmer.com/questions/anystring";

        int pos = path.lastIndexOf("/");

        String x =path.substring(pos+1 , path.length()-1);

现在x有值stringAfterlastOccurence

于 2014-04-15T10:12:57.597 回答
0

内普斯特回答的第三行应该是

String x =path.substring(pos+1 , path.length());

而不是 String x =path.substring(pos+1 , path.length()-1);因为substring()方法将end+1 偏移量作为第二个参数。

于 2016-01-01T18:10:23.957 回答