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?
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?
Jawaban:
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.
LastIndexOfmengembalikan -1 jika tidak ada yang ditemukan (ini adalah perilaku yang terdokumentasi, jadi aman untuk mengandalkannya). str.Substring(1-1)memberi Anda string yang sama dengan str. Tidak ada kejutan di sini.
Anda dapat menggunakan LINQ, dan menyimpan sendiri penguraian eksplisit:
string test = "9586-202-10072";
string lastFragment = test.Split('-').Last();
Console.WriteLine(lastFragment);
YourString.Substring(YourString.LastIndexOf("-"));
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.
result = Path.GetFileName(fileName);
lihat https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx
Lihat metode String.lastIndexOf
string atest = "9586-202-10072";
int indexOfHyphen = atest.LastIndexOf("-");
if (indexOfHyphen >= 0)
{
string contentAfterLastHyphen = atest.Substring(indexOfHyphen + 1);
Console.WriteLine(contentAfterLastHyphen );
}
Saya membuat ekstensi string untuk ini, semoga membantu.
public static string GetStringAfterChar(this string value, char substring)
{
if (!string.IsNullOrWhiteSpace(value))
{
var index = value.LastIndexOf(substring);
return index > 0 ? value.Substring(index + 1) : value;
}
return string.Empty;
}
strnol atau jika tidak mengandung tanda hubung sama sekali. (Dalam kasus di mana tidak ada tanda hubung yang tidak dilempar; mengembalikan seluruh string sumber.)