在JAVA中删除特定模式后的部分字符串

时间:2014-06-03 21:50:00

标签: java string comparison photo

我有这个字符串:

http://www.website.com/path/photo.jpg?resize=600%2C400

我希望删除文件类型后的部分。换句话说我想得到

http://www.website.com/path/photo.jpg

可以存在的文件类型是.jpg,.png,.gif

任何想法我怎么能实现这个?

2 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是在字符串中找到字符'?'的第一个位置,然后将字符串截断到该位置。

String modifiedUrl = "";
if(url.contains("?"))
{
   modifiedUrl = url.substring(0, url.indexOf("?"));
}

答案 1 :(得分:0)

更具特定于URL的解决方案是使用URL类中的逻辑,这将比您在相同时间内创建的任何正则表达式更智能。

URL fullUrl = new URL("http://www.website.com/path/photo.jpg?resize=600%2C400");
System.out.println(fullUrl.getProtocol() + "://" + fullUrl.getHost()
                   + ":" + fullUrl.getPort() + fullUrl.getPath());

您希望在其中处理异常处理和空值处理,以处理未提供URL位的情况,例如/localDir/localFileftp://yourServer.yourDomain/file