URL에서 특정 확장자로 파일 이름을 추출하려고합니다. 예를 들어 'https://abc.xyz.com/path/somefilename.xy'과 같은 URL이 있습니다. 위의 URL에서 "somefilename.xy"를 추출해야합니다.URL에서 파일 이름을 추출해야합니다.
은 기본적으로 내 자바 프로그램 I는 정규 표현식에서 좋은 아니에요
에 그 코드를 작성해야합니다, 그래서 누군가는 나에게 도움이 될 수 있습니다.
URL에서 특정 확장자로 파일 이름을 추출하려고합니다. 예를 들어 'https://abc.xyz.com/path/somefilename.xy'과 같은 URL이 있습니다. 위의 URL에서 "somefilename.xy"를 추출해야합니다.URL에서 파일 이름을 추출해야합니다.
은 기본적으로 내 자바 프로그램 I는 정규 표현식에서 좋은 아니에요
에 그 코드를 작성해야합니다, 그래서 누군가는 나에게 도움이 될 수 있습니다.
과 같이 :
String url = "https://abc.xyz.com/path/somefilename.xy";
String fileName = url.substring(url.lastIndexOf('/') + 1);
// fileName is now "somefilename.xy"
EDIT (신용을 @SomethingSomething) :과 같은 매개 변수가있는 URL도 지원해야하는 경우, 대신이를 사용할 수 있습니다? //abc.net/path/to/index.htm PARAM1 = 즐 & PARAM2 = bla` : URL이`httt과 같은 경우
String url = "https://abc.xyz.com/path/somefilename.xy?param1=blie¶m2=bla";
java.net.Url urlObj = new java.net.Url(url);
String urlPath = urlObj.getPath();
String fileName = urlPath.substring(urlPath.lastIndexOf('/') + 1);
// fileName is now "somefilename.xy"
이, 백 번을 완료 촬영 this answer에서되었습니다
또한 정규 표현식없이 그것을 할 수import org.apache.commons.io.FilenameUtils;
public class FilenameUtilTest {
public static void main(String[] args) {
String url = "http://www.example.com/some/path/to/a/file.xml";
String baseName = FilenameUtils.getBaseName(url);
String extension = FilenameUtils.getExtension(url);
System.out.println("Basename : " + baseName);
System.out.println("extension : " + extension);
}
}
당신은 사건을 무시한다. 원하는 결과는 물론'index.htm'이고, 코드는'index.htm? param1 = bla & param2 = bla'를 반환 할 것입니다. – SomethingSomething
@SomethingSomething 글쎄요, OP가 질문했습니다 : "somefilename.xy"를 추출해야합니다. 위의 URL에서, 그리고 그 밖의 것은 없습니다 ._ ". 또한 나는 3 년 전에 이것을 대답했다. 아마 _RyRope_의 답변과 같은 것을 사용할 것입니다. 왜 당신이 언급 한 이런 종류의 가장자리 케이스에 대해 생각하고 생각한 라이브러리와 유틸리티가있을 때 휠을 다시 발명해야합니다. –
어쨌든 트릭은'URL urlObj = new URL (url);과'String urlPath = urlObj.getPath()'두 줄을 추가하는 것입니다. 그런 다음'urlPath'에'substring' 솔루션을 적용하면 더 강력합니다. – SomethingSomething