Java 是否从结尾添加URL子字符串?

Java 是否从结尾添加URL子字符串?,java,substring,Java,Substring,我想将此url作为子字符串,以便获得图像名称 “26189抽象颜色背景.jpg” 如何操作?将lastIndexOf()与substring()一起使用 一种有效的方法是使用regex,它可以通过以下方式实现: String path = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg"; String filename = path.substring(path.lastIndexO

我想将此url作为子字符串,以便获得图像名称 “26189抽象颜色背景.jpg”

如何操作?

lastIndexOf()
substring()
一起使用


一种有效的方法是使用regex,它可以通过以下方式实现:

String path = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";

String filename = path.substring(path.lastIndexOf("/") + 1);
其中正则表达式表示“/”后跟字符串末尾的任意数量的非“/”

但是,如果您想使用子字符串,那么使用以下命令也很容易

Matcher m = Pattern.compile("\\/([^\\/]+)$").matcher(link);
if (m.find())
    fileName = m.group(1); 
你可以试试

String fileName = link.substring(link.lastIndexOf('/')+1);
你是说像这样吗

String s = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";
s = s.substring(s.lastIndexOf("/")+1);

我更喜欢第二个,因为尽管它稍微慢一点,但它更清晰,您可能需要URL的其他部分。

使用

String file = new URL(url).getFile();

将字符串拆分为“\”。从开始,您能将其转换为Java吗?;)顺便说一句,你需要在索引中添加一个。我已经编辑了我的帖子:),sr,用于此语法。我是内特^^ ^!我怀疑子字符串比正则表达式更有效。我会以任何方式添加一个正则表达式示例,以便OP可以看到差异。如果您有一个URL,其中文件的第一个字母不是
2
?或者端口或目录包含2。@PeterLawrey我回答了他在问题中想要的内容您可以只设置
String s=“26189 abstract color background.jpg”在这种情况下,“我想把这个url串起来”这是他问的“这是他问的”请不要认为一个问题的字面答案(必然)是最好的。
String url = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";
String file = url.substring(url.lastIndexOf('/')+1);
String file = new URL(url).getFile();
String x="http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";

x.substring(x.indexOf('2'))