Schauen Sie, ich verstehe den Wert der Suche nach der Antwort selbst, bevor Sie Fragen stellen, aber die Tatsache ist, dass diese Frage meine Suche viel einfacher gemacht hat. Genau das, was ich nach dem ersten Treffer wollte. Schneller als Javadocs zu konsultieren. Es ist gut, dass diese Frage hier ist. Warum die Abstimmungen?
Eric
3
Dies unterscheidet sich zwar etwas von Ihrer ursprünglichen Frage: In Ihrem Beispiel ist org.apache.commons.io.FilenameUtils.getBaseName viel zuverlässiger als das Ausführen eigener Zeichenfolgenoperationen.
Bis Schäfer
4
@Eric Ich stimme Ihrem Kommentar voll und ganz zu, da dies das erste Google-Ergebnis für meine Frage war und die akzeptierte Antwort genau das ist, was ich verwenden musste.
Thonnor
Antworten:
310
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Wenn Sie dieser Methode null übergeben, wird null zurückgegeben. Wenn keine Übereinstimmung mit dem Trennzeichen besteht, wird eine leere Zeichenfolge zurückgegeben.
Endlich etwas wirklich Handliches, wusste nichts über diese Methode. Ich hasse es, mit Teilzeichenfolge + Index von + 1 - 2 + 3 zu kämpfen. Das ist viel sauberer :)
BAERUS
Wenn Sie diese Methode unter Android verwenden möchten, müssen Sie die StringUtilsBibliothek importieren . Diese Antwort zeigt, wie heiß es ist: stackoverflow.com/a/33935645/2966583
stramin
9
Sie können Apache Commons verwenden:
Verwenden Sie diese Methode für Teilzeichenfolgen nach dem letzten Auftreten .
Und für Teilzeichenfolgen nach dem ersten Auftreten ist hier eine äquivalente Methode .
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.
Dieser Code gibt einen Fehler aus, wenn das Trennzeichen nicht gefunden wird.
Patrick Parker
@PatrickParker Warum haben Sie überall kommentiert, dass es einen Fehler auslöst, wenn das Trennzeichen nicht gefunden wird? Wenn Sie es aus Wissensgründen tun, dann ist es okay, aber ich denke, es ist vielleicht ein bisschen zu viel ...
Gaurav Mall
@GauravMall Ich helfe Menschen, ihre Antworten zu verbessern, besseren Code zu schreiben und denjenigen, die sie besuchen, dabei zu helfen, Fallstricke zu vermeiden und das Verständnis für den Code zu verbessern, bevor sie ihn irgendwo einfügen. Ich werde meinen Kommentar gerne entfernen, sobald die Antwort verbessert ist. Außerdem ist es kaum "überall", es an zwei Stellen zu schreiben. Schließlich ist der Kommentarbereich nicht für die Metadiskussion vorgesehen.
Antworten:
quelle
Eine sehr einfache Implementierung mit
String.split()
:quelle
was hast du versucht es ist sehr einfach:
quelle
Eine andere Möglichkeit besteht darin, dies zu verwenden .
Wenn Sie dieser Methode null übergeben, wird null zurückgegeben. Wenn keine Übereinstimmung mit dem Trennzeichen besteht, wird eine leere Zeichenfolge zurückgegeben.
quelle
StringUtils
Bibliothek importieren . Diese Antwort zeigt, wie heiß es ist: stackoverflow.com/a/33935645/2966583Sie können Apache Commons verwenden:
Verwenden Sie diese Methode für Teilzeichenfolgen nach dem letzten Auftreten .
Und für Teilzeichenfolgen nach dem ersten Auftreten ist hier eine äquivalente Methode .
quelle
Dies kann auch den Dateinamen erhalten
Wird gedruckt
ghfj.doc
quelle
Mit Guave machen Sie Folgendes :
Konfigurieren Sie schließlich die
Splitter
und verwenden SieSchauen Sie sich auch diesen Artikel über Guava Splitter und diesen Artikel über Guava Iterables an
quelle
In Kotlin können Sie
substringAfterLast
ein Trennzeichen angeben.Aus dem Dokument :
quelle
Ich denke, das wäre besser, wenn wir die Split-Funktion direkt verwenden
quelle