gpt4 book ai didi

java模式获取带扩展名的页面名

转载 作者:行者123 更新时间:2023-12-02 00:28:58 25 4
gpt4 key购买 nike

对于 URL http://questions/ask/stackoverflow.xhtml ,要求是获取stackoverflow。获取此页面名称的模式是什么?可以使用子字符串,但我读到模式匹配器的性能会更好。

最佳答案

我猜想正则表达式解决方案会更复杂(并且可能更慢)。如果没有它们,我会这样做:

public static String getFilename(String s) {
int lastSlash = s.lastIndexOf("/");
if (lastSlash < 0) return null;
int nextDot = s.indexOf(".", lastSlash);
return s.substring(lastSlash+1, (nextDot<0) ? s.length() : nextDot);
}

String url = "http://questions/ask/stackoverflow.xhtml";
getFilename(url); // => "stackoverflow"

当然,如果 URL 没有文件名,那么您将获得主机名。您可能最好解析 URL ,提取其中的文件部分,并删除路径和扩展名。像这样的事情:

public static String getFilename2(String s) {
URL url = null;
try {
url = new URL(s);
} catch (MalformedURLException mue) { return null; }
String filePart = url.getFile();
if (filePart.equals("")) return "";
File f = new File(filePart);
String filename = f.getName();
int lastDot = filename.lastIndexOf(".");
return (lastDot<0) ? filename : filename.substring(0, lastDot);
}

关于java模式获取带扩展名的页面名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com