Java : 특정 문자 다음에 시작하는 문자열에서 하위 문자열 가져 오기 문자열이 있습니다. /abc/def/ghfj.doc ghfj.doc이것에서 추출

문자열이 있습니다.

/abc/def/ghfj.doc

ghfj.doc이것에서 추출 하고 싶습니다 . 즉, 마지막 이후 /또는 처음 /부터 하위 문자열 입니다.

누군가 도움을 줄 수 있습니까?



답변

    String example = "/abc/def/ghfj.doc";
    System.out.println(example.substring(example.lastIndexOf("/") + 1));


답변

매우 간단한 구현 String.split():

String path = "/abc/def/ghfj.doc";
// Split path into segments
String segments[] = path.split("/");
// Grab the last segment
String document = segments[segments.length - 1];


답변

무엇을 시도 했습니까? 매우 간단합니다.

String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)


답변

또 다른 방법은 이것을 사용 하는 것 입니다.

String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");

이 메소드에 널을 전달하면 널을 리턴합니다. 구분 기호와 일치하지 않으면 빈 문자열을 반환합니다.


답변

Apache commons를 사용할 수 있습니다.

마지막 발생 후 하위 문자열의 경우이 방법을 사용 하십시오 .

그리고 첫 번째 발생 후 하위 문자열의 경우 동등한 방법이 여기 있습니다 .


답변

이것은 또한 파일 이름을 얻을 수 있습니다

import java.nio.file.Paths;
import java.nio.file.Path;
Path path = Paths.get("/abc/def/ghfj.doc");
System.out.println(path.getFileName().toString());

인쇄합니다 ghfj.doc


답변

구아바 와 함께 이렇게 :

String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);

결국 구성 Splitter및 사용

Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...

구아바 스플리터 (Guava Splitter)구아바 (Guava Iterables)에 관한이 기사도 살펴보십시오.