Saya memiliki yang berikut ini:
string test = "9586-202-10072"
Bagaimana saya mendapatkan semua karakter di sebelah kanan final -
jadi 10072. Jumlah karakter selalu berbeda di sebelah kanan tanda hubung terakhir.
Bagaimana ini bisa dilakukan?
Anda bisa mendapatkan posisi terakhir -
dengan str.LastIndexOf('-')
. Jadi langkah selanjutnya sudah jelas:
var result = str.Substring(str.LastIndexOf('-') + 1);
Koreksi :
Seperti yang dikatakan Brian di bawah ini, menggunakan ini pada string tanpa tanda hubung akan menghasilkan string yang sama dikembalikan.
str
nol atau jika tidak mengandung tanda hubung sama sekali. (Dalam kasus di mana tidak ada tanda hubung yang tidak dilempar; mengembalikan seluruh string sumber.)LastIndexOf
mengembalikan -1 jika tidak ada yang ditemukan (ini adalah perilaku yang terdokumentasi, jadi aman untuk mengandalkannya).str.Substring(1-1)
memberi Anda string yang sama denganstr
. Tidak ada kejutan di sini.Anda dapat menggunakan LINQ, dan menyimpan sendiri penguraian eksplisit:
sumber
sumber
sumber
Saya dapat melihat posting ini telah dilihat lebih dari 46.000 kali. Saya berani bertaruh banyak dari 46.000 pemirsa menanyakan pertanyaan ini hanya karena mereka hanya menginginkan nama file ... dan jawaban ini bisa menjadi lubang kelinci jika Anda tidak dapat membuat substring Anda kata demi kata menggunakan tanda di.
Jika Anda hanya ingin mendapatkan nama file, maka ada jawaban sederhana yang harus disebutkan di sini. Meskipun itu bukan jawaban yang tepat untuk pertanyaan itu.
lihat https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx
sumber
Lihat metode String.lastIndexOf
sumber
test.Substring(test.LastIndexOf("-"))
sumber
sumber
Saya membuat ekstensi string untuk ini, semoga membantu.
sumber