删除字符最后一次出现后的字符串



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

假设这是字符串:

/String1/String2/String3/String4/String5

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

/String1/String2/String3/String4/

我该怎么做?

您可以使用

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)
    }
}  
String whatyouaresearching = myString.substring(0, myString.lastIndexOf("/"))

您可以使用 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>

最简单的方法是...

        String path = "http://zareahmer.com/questions/anystring";
        int pos = path.lastIndexOf("/");
        String x =path.substring(pos+1 , path.length()-1);

现在x具有值字符串AfterlastOccurrenceence

Nepster 回答中的第三行应该是

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

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

最新更新