2012-05-31 60 views
33

在我的应用程序中,我附加了一个字符串以创建用于生成URL的路径。现在我想删除按回按钮上的附加字符串。在最后一次出现字符后删除字符串

假设是这样的字符串:

/String1/String2/String3/String4/String5 

现在我想这样的字符串:

/String1/String2/String3/String4/ 

我怎样才能做到这一点?

+0

可能重复[?如何获得在Java中最后一个逗号后面的字符串(http://stackoverflow.com/questions/9515505/how-to-get-the -string-后最后逗号中的Java) – Barett

+0

我已经回答了这个问题..在[这里] [1] 这是一个简单的方法.. [1]:HTTP://计算器.com/questions/1181969/java-get-last-element-after-split/23075419#23075419 – Nepster

回答

51

您可以使用相同的方法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) 
    } 
} 
+0

是的,我正在获取最后一次出现“/”的索引,但如何删除该字符后的字符串? ? –

+1

str.subString(0,endIndex); –

+0

不忘记检查是否(endIndex!= -1) –

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

“substring”,而不是subString():) – codevscolor

+0

@rsan:谢谢!很好的答案.. – Shesha

+1

@rsan好的答案,因为字符串whatyouaresearching包括最后一个“/”它会更像是:'String whatyouaresearching = myString.substring(0,myString.lastIndexOf(“/”)+ 1)' –

3

最简单的方法是...

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

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

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

现在x具有价值stringAfterlastOccurence

0

在Nepster的回答第三行应是

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

和不String x =path.substring(pos+1 , path.length()-1);因为substring()方法采用端+ 1偏移作为第二个参数。

+1

长相像是对我的回答 – Drew

2

您可以使用无效的apache.commons.lang.StringUtils.substringBeforeLast(str, separator)

根据JavaDoc:

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" 
相关问题