JAVA中删除最后一个斜杠后面的字符串

27

我有一个在JAVA中移除URL最后一个斜杠后面的所有内容的问题。 例如,我的URL:

http://stackoverflow.com/questions/ask

我想要将它改变成:

http://stackoverflow.com/questions/

我该如何做到这一点。


2
你尝试过什么吗?至少熟悉了一下String API吗? - Rohit Jain
4
使用 String.lastIndexOf(String) 方法来查找最后一个斜杠,然后选择该斜杠之前的子字符串...?在 String API 中大约需要 10 秒钟找到该方法。 - sheltem
将Java字符串中的尾部斜杠删除的一行解决方案。 - Zar E Ahmer
4个回答

61

你可以尝试这个

    String str="http://stackoverflow.com/questions/ask";
    int index=str.lastIndexOf('/');
    System.out.println(str.substring(0,index));

在Java中,我该如何获取第三个斜杠后面的字符串? - Shaonline
@Shaonline,可以让我看看你的代码吗? - Ruchira Gayan Ranaweera
http://stackoverflow.com/questions/37138900/how-to-fetch-string-after-the-third-slash-in-java - Shaonline
@Shaonline 这个问题已经有了答案。它对你没用吗? - Ruchira Gayan Ranaweera
是的,我刚刚明白了...它可以工作 :) 谢谢你。 - Shaonline
谢谢 @RuchiraGayanRanaweera ,给你点赞,这是一个整洁而干净的解决方案。 - Ravi Vaniya

20

如果您想从URL中获取最后一个值

String str="http://stackoverflow.com/questions/ask";
System.out.println(str.substring(str.lastIndexOf("/")));

结果将会是"/ask"

如果你想要获取最后一个正斜杠后面的值

String str="http://stackoverflow.com/questions/ask";
System.out.println(str.substring(str.lastIndexOf("/") + 1));

结果将是“ask”


6

尝试使用String#lastIndexOf()

返回指定字符在此字符串中最后一次出现的索引。

String result = yourString.subString(0,yourString.lastIndexOf("/"));

同时作为一个正则表达式 /[^/]*$ - ug_
1
@ns47731。这里实际上并不需要它。 - Rohit Jain
@RohitJain 你说得对,这绝对是过度杀伤力了。 - ug_
是的,只有在没有内置方法可用时,我才会使用正则表达式。 - Suresh Atta
如何打印最后一个斜杠后面的字符。例如,String result = http://stackoverflow.com/questions/ask,则在字符串result中输出ask - Santhosh

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

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