Ich habe eine Zeichenfolge:
/abc/def/ghfj.doc
Ich möchte daraus extrahieren ghfj.doc
, dh den Teilstring nach dem letzten /
oder zuerst /
von rechts.
Könnte jemand bitte etwas Hilfe leisten?
Ich habe eine Zeichenfolge:
/abc/def/ghfj.doc
Ich möchte daraus extrahieren ghfj.doc
, dh den Teilstring nach dem letzten /
oder zuerst /
von rechts.
Könnte jemand bitte etwas Hilfe leisten?
Antworten:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Eine sehr einfache Implementierung mit 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];
was hast du versucht es ist sehr einfach:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Eine andere Möglichkeit besteht darin, dies zu verwenden .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Wenn Sie dieser Methode null übergeben, wird null zurückgegeben. Wenn keine Übereinstimmung mit dem Trennzeichen besteht, wird eine leere Zeichenfolge zurückgegeben.
StringUtils
Bibliothek importieren . Diese Antwort zeigt, wie heiß es ist: stackoverflow.com/a/33935645/2966583
Mit Guave machen Sie Folgendes :
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Konfigurieren Sie schließlich die Splitter
und verwenden Sie
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Schauen Sie sich auch diesen Artikel über Guava Splitter und diesen Artikel über Guava Iterables an
In Kotlin können Sie substringAfterLast
ein Trennzeichen angeben.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Aus dem Dokument :
Gibt einen Teilstring nach dem letzten Auftreten des Trennzeichens zurück. Wenn die Zeichenfolge das Trennzeichen nicht enthält, wird "missingDelimiterValue" zurückgegeben, das standardmäßig die ursprüngliche Zeichenfolge ist.
Ich denke, das wäre besser, wenn wir die Split-Funktion direkt verwenden
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"