lihat, saya mengerti nilai mencari jawaban sendiri sebelum mengajukan pertanyaan, tetapi faktanya adalah pertanyaan ini membuat pencarian saya jauh lebih mudah .. persis apa yang saya inginkan setelah hit pertama. Lebih cepat daripada berkonsultasi dengan javadocs. Ada baiknya pertanyaan ini ada di sini. Mengapa downvotes?
Eric
3
Meskipun ini agak berbeda dari pertanyaan awal Anda: Dalam contoh Anda org.apache.commons.io.FilenameUtils.getBaseName jauh lebih dapat diandalkan daripada melakukan operasi string Anda sendiri.
Hingga Schäfer
4
@ Eric Saya sepenuhnya setuju dengan komentar Anda karena ini adalah hasil Google pertama untuk pertanyaan saya dan jawaban yang diterima adalah persis apa yang perlu saya gunakan.
thonnor
Jawaban:
310
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Akhirnya sesuatu yang sangat berguna, tidak tahu tentang metode ini. Aku benci repot dengan substring + indexof + 1 - 2 +3 apa pun. Ini jauh lebih bersih :)
BAERUS
Jika Anda ingin menggunakan metode ini di Android, Anda harus mengimpor StringUtilsperpustakaan, jawaban ini menunjukkan panas untuk melakukannya: stackoverflow.com/a/33935645/2966583
stramin
9
Anda dapat menggunakan Apache commons:
Untuk substring setelah kejadian terakhir, gunakan metode ini .
Dan untuk substring setelah metode setara kemunculan pertama ada di sini .
Mengembalikan substring setelah pemisah terakhir. Jika string tidak mengandung pembatas, mengembalikan missingDelimiterValue yang default ke string asli.
kode ini akan memunculkan kesalahan jika separator tidak ditemukan.
Patrick Parker
@ PatrickParker Mengapa Anda berkomentar di mana-mana bahwa itu akan menimbulkan kesalahan jika pemisah tidak ditemukan. Jika Anda melakukannya untuk tujuan pengetahuan daripada apa-apa, tapi saya pikir itu agak terlalu banyak mungkin ...
Gaurav Mall
@GauravMall Saya membantu orang untuk meningkatkan jawaban mereka, untuk menulis kode yang lebih baik, dan bagi mereka yang berkunjung untuk membantu mereka menghindari jebakan dan membangun pemahaman kode sebelum mereka menempelkannya di suatu tempat. Saya dengan senang hati akan menghapus komentar saya setelah jawabannya ditingkatkan. Juga, menulisnya di dua tempat hampir tidak "di mana-mana". Akhirnya, bagian komentar bukan untuk diskusi meta.
Jawaban:
sumber
Implementasi yang sangat sederhana dengan
String.split()
:sumber
apa yang sudah kamu coba ini sangat sederhana:
sumber
Cara lain adalah menggunakan ini .
Jika Anda lulus nol ke metode ini, ia akan mengembalikan nol. Jika tidak ada kecocokan dengan pemisah itu akan mengembalikan string kosong.
sumber
StringUtils
perpustakaan, jawaban ini menunjukkan panas untuk melakukannya: stackoverflow.com/a/33935645/2966583Anda dapat menggunakan Apache commons:
Untuk substring setelah kejadian terakhir, gunakan metode ini .
Dan untuk substring setelah metode setara kemunculan pertama ada di sini .
sumber
Ini juga bisa mendapatkan nama file
Akan dicetak
ghfj.doc
sumber
Dengan Jambu lakukan ini:
Akhirnya konfigurasikan
Splitter
dan gunakanJuga lihat artikel ini tentang jambu Splitter dan artikel tentang jambu biji Iterables
sumber
Di Kotlin Anda dapat menggunakan
substringAfterLast
, menentukan pembatas.Dari dokumen :
sumber
Saya pikir itu akan lebih baik jika kita langsung menggunakan fungsi split
sumber