String İşlemleri - 1

ASP.NET'te String işlemlerini inceleyen ve örnekleyen bir makale

Bu makalemizde sizlere ASP.NET'te metin işlemlerinin nasıl yürüdüğünü elimizden geldiğince anlatmaya çalışacağız. Hatırlayacağınız üzere ASP/VBScript zamanında biz bu işlemleri replace, mid, left gibi bazı fonksiyonları kullanarak yapıyorduk, ASP.NET bu fonksiyonları tamamiyle unutmuş değil, kodlarını VB.NET kullanarak yazanlar bu fonksiyonları aynı şekilleriyle kullanabilirler ama C# kullanıcıları bu fonksiyonları kullanamazlar! ASP.NET''de zaten metinlerle olan işlerimizi gerçekleştirebilmemiz için hali-hazırda bir kaç farklı sınıfımız mevcut. Şimdi bu sınıflarımıza bir göz atalım.

String
Regex
Match
Group
Capture
MatchCollection
GroupCollection
CaptureCollection

Bu sınıflarımızdan String hariç hepsi System.Text.RegularExpressions aduzayının içinde bulunuyor, bu sınıfları kullanmak istiyorsanız bu aduzayını eklemek zorunda değilsiniz çünkü System.Text.RegularExpressions aduzayımız biz istesek de istemesek de bütün sayfalara otomatik olarak eklenen aduzayları arasında.

String
Length
IndexOf
IndexOfAny
Insert
Remove
Replace
Substring
ToLower
ToUpper
Trim

Yukarıdaki liste String sınıfına ait, metin işlerken en çok kullanacağınız fonksiyonlardan bazıları, bunlar haricinde String sınıfının başka fonksiyonları da olduğunu unutmayın. Başlamadan önce son olarak şunu belirteyim, haricini belirtmediğim mühletçe bütün fonksiyonların aramalarını "case-sensitive" yani "büyük küçük harf duyarlı" yaptığını unutmayın.

Length : Bu String sınıfının bir üyesi (Değişken), String''in uzunluğunu verir.

IndexOf : Bu fonksiyon String ''in içerisinde aratacağınız harf ya da kelimenin başlangıç noktasını verir. Vereceğiniz birinci parametre aratacağınız harf ya da kelimeyi, ikinci parametre metnin kaç numaralı karakterinden başlanması gerektiğini, üçüncü parametresi ise kaç karakter boyunca arama yapılacağını belirtir. İki ve üçüncü parametreleri vermek zorunda değilsiniz. Aşağıdaki örneğin sonucu 4''dür.

IndexOf - C#
<%@ Page Language = "C#" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir sabah, alıp seni benden gitti bu diyardan";
int i = sMetin.IndexOf("sabah");
%>
<%=i%>
</BODY>
</HTML>

IndexOf - VB.NET
<%@ Page Language = "VB" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir sabah, alıp seni benden gitti bu diyardan"
Dim i As Integer = sMetin.IndexOf("sabah")
%>
<%=i%>
</BODY>
</HTML>

Yukarıda ki örneklerde fonksiyonumuzun ve string.Length üyesinin nasıl kullanılacağını gördük. Burada bilmeniz gereken şey eğer sonuç pozitif bir rakam olarak dönüyorsa; aranan kelime bulunmuştur, eğer negatif olarak dönüyorsa aranan kelime bulunamamış, eğer sıfır ya da fonksiyona ikinci parametre olarak verdiğiniz değer döndüyse String''in içeriği boş demektir.

IndexOfAny: String''in içerisinde, vereceğiniz bir char dizesinin içeriğindeki herhangi bir harfin olup olmadığını kontrol eder, eğer varsa size harfin başlangıç noktasını Integer olarak verir. Parametreleri IndexOf fonksiyonu ile aynıdır. Sadece fonksiyonun geri dödürdüğü değer pozitif(+1) yada negatif(-1) olabilir; sonuç pozitifse aranılan harf String içerisinde bulundu, negatif ise bulunamadı demektir. Bunu bir String''in içerisinde istemediğiniz harfleri bulmak için kullanabilirsiniz. Aşağıdaki örnek için sonuç -1 çıkmalıdır.

IndexOfAny - C#
<%@ Page Language = "C#" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir sabah, alıp seni benden gitti bu diyardan";
char[] cIstenmeyen = {''#'', ''%'', ''&''};
int i = sMetin.IndexOfAny(cIstenmeyen);
%>
<%=i%>
</BODY>
</HTML>

IndexOfAny - VB.NET
<%@ Page Language = "VB" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir sabah, alıp seni benden gitti bu diyardan"
Dim cIstenmeyen() As Char = {"#","%","&"}
Dim i As Integer = sMetin.IndexOfAny(cIstenmeyen)
%>
<%=i%>
</BODY>
</HTML>

Insert: Bu metodumuz ise String''in içerisine başka bir String''i yerleştirmeye yarar. İki parametre alır, birinci parametrede String''in nereye yerleştirileceği belirtilir, ikinci parametre ise yerleştirilecek olan String''dir. Burada bilmeniz gereken; fonksiyon geriye String döndürür; geriye dönen, üzerinde işlem yapılan String''in yeni halidir!

Insert - C#
<%@ Page Language = "C#" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir sabah, alıp seni benden gitti bu diyardan";
string sMetin2 = ", hazin bir mektup, bir-yâdigâr kalan";
sMetin = sMetin.Insert(sMetin.Length, sMetin2);
%>
<%=sMetin%>
</BODY>
</HTML>

Insert - VB.NET
<% @Page Language="VB" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir sabah, alıp seni benden gitti bu diyardan"
Dim sMetin2 As String = ", hazin bir mektup, bir-yâdigâr kalan"
sMetin = sMetin.Insert(sMetin.Length, sMetin2)
%>
<%=sMetin%>
</BODY>
</HTML>

Remove: Bu fonksiyonumuz ise bir String''in içerisindeki harf ya da harfleri silmeye yarar. İki parametre alır; birincisi kaç numaralı harfden itibaren silinmeye başlanacağını, ikincisi ise kaç harf silineceğini gösterir. Fonksiyonumuz Insert fonksiyonunda olduğu gibi geriye String döndürür.

Remove - C#
<%@ Page Language ="C#" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir sabah, alıp seni benden gitti bu diyardan";
sMetin += ", hazin bir mektup, bir-yâdigâr kalan";
sMetin = sMetin.Remove(45, 37);
%>
<%=sMetin%>
</BODY>
</HTML>

Remove - VB.NET
<%@ Page Language="VB" Debug = "True"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir sabah, alıp seni benden gitti bu diyardan"
sMetin += ", hazin bir mektup, bir-yâdigâr kalan"
sMetin = sMetin.Remove(45, 37)
%>
<%=sMetin%>
</BODY>
</HTML>

Replace: Bu fonksiyonumuz bir metnin içerisinde aratacağınız bir harf ya da kelimeyi yine sizin belirleyeceğiniz başka bir harf ya da kelime ile değiştirir. İki parametresi vardır; birincisi aranacak String ''i, ikincisi ise yerine konacak olan String ''i temsil eder. Yine geriye String döndüren bir fonksiyondur.

Replace - C#
<%@ Page Language="C#" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir akşam, alıp seni benden gitti bu diyardan";
sMetin = sMetin.Replace("akşam", "sabah");
%>
<%=sMetin%>
</BODY>
</HTML>

Replace - VB.NET
<%@ Page Language="VB" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir akşam, alıp seni benden gitti bu diyardan"
sMetin = sMetin.Replace("akşam", "sabah")
%>
<%=sMetin%>
</BODY>
</HTML>

Substring: Bu fonksiyonumuz bir String ''in içerisinde ki başlangıç noktasını ve uzunluğunu belirtmiş olduğunuz konumdaki metni size verir. İki parametresi vardır. Birincisi String''in içinden okunmak istenen metnin başlangıç noktasını, ikinci parametre ise kaç karakter boyunca daha okunacağını belirtir. İkinci parametreyi yazmak zorunda değilsiniz, eğer yazmazsanız belirttiğiniz noktadan String''in sonuna kadar olan kısım tamamen okunur. Geriye String döndürür.

Substring - C#
<%@ Page Language="C#" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = "bir sabah, alıp seni benden gitti bu diyardan";
string sTespit;
sTespit = sMetin.Substring(10, 24);
%>
<%=sTespit%>
</BODY>
</HTML>

Substring - VB.NET
<%@ Page Language="VB" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = "bir sabah, alıp seni benden gitti bu diyardan"
Dim sTespit As String = sMetin.Substring(10, 24)
%>
<%=sTespit%>
</BODY>
</HTML>

ToLower: Bu sınıfımız String ''in içeriğinin tamamını küçük harfe çevirir. Fonksiyonumuz yine String döndüren bir fonkiyondur. Sadece tek parametre alır; bu parametre metnin hangi "Kültüre" ait olduğunu belirtir. Örneğin ingilizceyi düşünecek olursanız ''I'' harfinin küçüğü ''i'' harfidir ama türkçede bu ''ı'' olarak geçer, bu parametrenin var oluş sebebi bu tür karmaşaları ortadan kaldırmakdır. Parametreyi vermek zorunda değilsiniz, bu durumda var olan "Kültür" taban alınır, ama vermek istiyorsanız bu durumda bir CultureInfo sınıfı oluşturmalısınız, Bu sınıfın "System.Globalization" aduzayının içinde bulunduğunu da hatırlatalım. Elinde .NET SDK ''sını bulunduranlar "CultureInfo class, about CultureInfo class" bölümünden tam listeye ulaşabilir, haricinde aşağıdaki örnek kod derlenmek suretiyle de tam liste görüntülenebilir.

CultureInfo tam liste - C#
<%@ Page Language="C#" Debug="True" %>
<%@ Import NameSpace = "System.Globalization"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
foreach(CultureInfo CI in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
Response.Write(CI + "<BR>");
}
%>
</BODY>
</HTML>

CultureInfo tam liste - VB.NET
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace = "System.Globalization"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim CI As CultureInfo
For Each CI In CultureInfo.GetCultures(CultureTypes.AllCultures)
Response.Write(CI.ToString() & "<BR>")
Next
%>
</BODY>
</HTML>

ToLower - C#
<%@ Page Language="C#" Debug="True"%>
<%@ Import NameSpace = "System.Globalization"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
CultureInfo CI = new CultureInfo("TR-TR");
string sMetin = "BİR SABAH, ALIP SENİ BENDEN GİTTİ BU DİYARDAN";
sMetin = sMetin.ToLower(CI);
Response.Write("CultureInfo TR-TR= "+sMetin+"<BR>");


CultureInfo CI2 = new CultureInfo("EN-US");
string sMetin2 = "BİR SABAH, ALIP SENİ BENDEN GİTTİ BU DİYARDAN";
sMetin2 = sMetin2.ToLower(CI2);
Response.Write("CultureInfo EN-US= "+sMetin2+"<BR>");
%>
</BODY>
</HTML>

ToLower - VB.NET
<%@ Page Language="VB" Debug="True"%>
<%@ Import Namespace = "System.Globalization"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim CI As New CultureInfo("TR-TR")
Dim sMetin As String = "BİR SABAH, ALIP SENİ BENDEN GİTTİ BU DİYARDAN"
sMetin = sMetin.ToLower(CI)
Response.Write("CultureInfo TR-TR= "& sMetin &"<BR>")


Dim CI2 As New CultureInfo("EN-US")
Dim sMetin2 As String = "BİR SABAH, ALIP SENİ BENDEN GİTTİ BU DİYARDAN"
sMetin2 = sMetin2.ToLower(CI2)
Response.Write("CultureInfo EN-US= "& sMetin2 &"<BR>")
%>
</BODY>
</HTML>

Yukarıdaki örneğimizin sonuçlarını inceleyecek olursanız CultureInfo ''yu EN-US olarak belirlediğimizde ''I'' harfinin ''ı'' olarak değilde ''i'' olarak, yanlış bir biçimde küçültüldüğünü görebilirsiniz. Burada verdiğimiz parametreye dikkat edin, parametreyi sadece EN şeklinde de geçebilirdik, ama eğer biraz önce bahsettiğimiz listeyi inceleyecek olursanız bir dilin (örneğin çince) birden farklı çeşidi olduğunu farkedeceksiniz. Bu tür bir sorunla karşılaşabileceğinizi seziyorsanız parametreyi ikili haliyle verin.

ToUpper: Bu fonksiyonumuz ise bir önceki fonksiyonumuz ile tamamiyle aynı, tek fark; String''in içindeki bütün harfleri büyük yapar.

Trim: Bu son fonksiyonumuz ise parametresiz olarak kullanıldığında String''in başındaki ve sonundaki boşluk karakterlerini (white space; 0x9, 0xA, 0xB, 0xC, 0xD, 0x20, 0xA0, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x3000, 0xFEFF) temizlemeye yarar, eğer dilerseniz bir karakter dizesini parametre olarak geçip String''in başından ve sonundan bu verdiğiniz karakterleri de temizletebilirsiniz, bunun haricinde herhangi bir parametresi yok. Geriye String döndürür. Bu fonksiyonumuza ek olarak TrimStart ve TrimEnd fonksiyonlarımızında olduğunu hatırlatalım. Bu fonksiyonlarımız Trim fonksiyonumuzla aynı nitelikleri taşır, yalnızca; TrimStart metnin başındaki, TrimEnd ise sonundaki boşluk yada belirtilen karakterleri temizler.

Trim - C#
<%@ Page Language="C#" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
string sMetin = " bir sabah, alıp seni benden gitti bu diyardan#";
sMetin = sMetin.Trim();
Response.Write("Boşluklar temizlendi:"+ sMetin +"<BR>");

sMetin = sMetin.Trim(''#'');
Response.Write("Belirlenen karakterler temizlendi:"+ sMetin +"<BR>");
%>
</BODY>
</HTML>

Trim - VB.NET

<%@ Page Language="VB" Debug="True" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Dim sMetin As String = " bir sabah, alıp seni benden gitti bu diyardan#"
sMetin = sMetin.Trim()
Response.Write("Boşluklar temizlendi:"& sMetin &"<BR>")

sMetin = sMetin.Trim("#")
Response.Write("Belirlenen karakterler temizlendi:"& sMetin &"<BR>")
%>
</BODY>
</HTML>

, ,

Arşivden

Yorum bulunmuyor.

Yorum yazabilirsiniz


* [b], [i] ve [quote] serbest