programing

Java: 특정 문자 뒤에 시작하는 문자열에서 하위 문자열 가져오기

copysource 2022. 8. 10. 21:10
반응형

Java: 특정 문자 뒤에 시작하는 문자열에서 하위 문자열 가져오기

나는 끈이 있다:

/abc/def/ghfj.doc

추출하고 싶다ghfj.doc이것으로부터, 즉, 마지막 이후의 서브스트링/또는 첫 번째/오른쪽에서

누가 좀 도와주시겠어요?

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

를 사용한 매우 간단한 실장:

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, "/");

이 메서드에 null을 전달하면 null이 반환됩니다.구분 기호가 일치하지 않으면 빈 문자열이 반환됩니다.

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

Guava에서는 다음을 수행합니다.

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에 대한 이 기사대해서도 살펴보십시오.

코틀린에서는substringAfterLast딜리미터를 지정합니다.

val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc

문서에서:

딜리미터의 마지막 항목 뒤에 하위 문자열을 반환합니다.문자열에 딜리미터가 포함되지 않은 경우 원래 문자열로 기본 설정되는 missingDelimiterValue를 반환합니다.

직접 스플릿 기능을 사용하는 것이 좋을 것 같습니다.

String toSplit = "/abc/def/ghfj.doc";

String result[] = toSplit.split("/");

String returnValue = result[result.length - 1]; //equals "ghfj.doc"

자바 안드로이드

나 같은 경우에는

에서 바꾸고 싶다.

~/propic/......png

프로포즈 이후의 어떤 것도/앞의 것은 중요하지 않다

......png

드디어 Class String Utils에서 코드를 찾았습니다.

이것이 코드입니다.

     public static String substringAfter(final String str, final String separator) {
         if (isEmpty(str)) {
             return str;
         }
         if (separator == null) {
             return "";
         }
         final int pos = str.indexOf(separator);
         if (pos == 0) {
             return str;
         }
         return str.substring(pos + separator.length());
     }

언급URL : https://stackoverflow.com/questions/14316487/java-getting-a-substring-from-a-string-starting-after-a-particular-character

반응형