Merhaba arkadaşlar bugün sizlere C# ile uzun bir string değişkende bulunan bir cünlenin uzunluğunu kısaltırken kısaltma işleminin sonunda tam kelime kalacak şekilde nasıl kısaltabileceğimizden bahsedeceğim.
Örnek olarak aşağıdaki gibi bir string değişkenimizin olduğunu düşünelim.
1 |
string longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam dignissim purus non lacus volutpat placerat. Curabitur congue porta nibh at varius. Maecenas aliquet dolor erat, vel pharetra justo venenatis faucibus. Nam ac pellentesque elit, ut sollicitudin elit. Sed vel viverra erat. Nulla vel rutrum lectus. Mauris rhoncus, dolor nec cursus euismod, lectus ex consequat libero, a lacinia mi lectus in augue. Morbi ultrices neque id pellentesque molestie. Nullam sed mi vel urna tempor porta ac sit amet lectus. Praesent sed tellus sed nunc efficitur sagittis id nec est. Mauris nec ligula et ipsum fringilla porttitor."; |
Burada gelen değişkenimizde sadece ilk 200 karakterimizin alınmasını istediğimizi varsayarak kodumuzu yazmaya başlayalım.
İlk olarak bir if içerisinde bu yazımızın 200 karakterden küçük mü büyük mü olduğunu kontrol etmemiz gerekiyor. Eğer küçük ise herhangi bir işlem yapmamıza gerek kalmayacaktır.
1 2 3 4 |
if (longText.Length > 200) { } |
Eğer 200 karakterden büyük ise bu bu textimizin içerisinden son 200 karakterden başlayarak ilk boşluk karakteri gelen sıramızı bulmamız gerekecek ki kelimemiz yarım kesilmemiş olsun.
Bunun içinde “LastIndexOf” kullanıyorum.
1 |
int pos = longText.LastIndexOf(" ", 200); |
Burada pos değişkeni bize belirlediğimiz karakter sınırına en yakın biten cümlenin index numarasını verecektir. Şimdi ise tek yapmamız gereken “Substring” kullanarak bu index numarasına kadar olan yazıyı almamız kaldı. Tabi bu kısaltma olduğu için de sonuna “…” ekliyoruz.
1 |
longText = longText.Substring(0, pos) + "..."; |
Bütün bu işlemleri tamamladıktan sonra belirlediğimiz karakter sınırına ek yakın kelimeye kadar cümlemizi kısaltmış oluyoruz.
Bu kodumuzu bir araya getirdiğimizde son güncel kodumuz aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 |
string longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam dignissim purus non lacus volutpat placerat. Curabitur congue porta nibh at varius. Maecenas aliquet dolor erat, vel pharetra justo venenatis faucibus. Nam ac pellentesque elit, ut sollicitudin elit. Sed vel viverra erat. Nulla vel rutrum lectus. Mauris rhoncus, dolor nec cursus euismod, lectus ex consequat libero, a lacinia mi lectus in augue. Morbi ultrices neque id pellentesque molestie. Nullam sed mi vel urna tempor porta ac sit amet lectus. Praesent sed tellus sed nunc efficitur sagittis id nec est. Mauris nec ligula et ipsum fringilla porttitor."; if (longText.Length > 200) { int pos = longText.LastIndexOf(" ", 200); longText = longText.Substring(0, pos) + "..."; } |
Burada “longText” değişkenine gelecek cümleyi istediğiniz gibi ayarlayarak sorunsuz bir şekilde kullanabilirsiniz.
İlk Yorumu Siz Yapın