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

时间:2012-05-31 06:12:06

标签: java

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

假设这是字符串:

/String1/String2/String3/String4/String5

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

/String1/String2/String3/String4/

我该怎么做?

5 个答案:

答案 0 :(得分:56)

您可以将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)
    }
}  

答案 1 :(得分:39)

String whatyouaresearching = myString.substring(0, myString.lastIndexOf("/"))

答案 2 :(得分:4)

您可以使用{null}安全的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>

答案 3 :(得分:3)

最简单的方法是......

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

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

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

现在x的值为 stringAfterlastOccurence

答案 4 :(得分:0)

Nepster答案的第三行应该是

  

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

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