Pure Java – 54 String – 02 Methods
Merhaba Arkadaslar,
Bu yazida Java’da String sinifina ait metotlari inceleyecegiz.String sinifina ait olan bu metotlari bol miktar kullanma ihtiyaci hissederiz bu nedenle bunlari iyi ogrenmek son derece faydali olacaktir.
legth()
public int length() {...}
length() metodu String’in kac karakterden olustugu bilgisini doner. Basit bir ornek yapalim;
public class StringTest { public static void main(String[] args) { String name = "levent"; int len = name.length(); System.out.println("karakter sayisi:" + len); } }
length() metodu bize 6 degerini donecektir.
isEmpty()
public boolean isEmpty()
isEmpty metodu bize String uzunlugu 0 ise true degeri donecektir. Yani String’in bos oldugu durumda. Bu metot bazen kontrol amacli cok faydali olabilmektedir.
public class IsEmptyTest { public static void main(String[] args) { String str = ""; boolean isEmptyString = str.isEmpty(); System.out.println(isEmptyString); } }
charAt
public char charAt(int index)
charAt metodu belirtilmis indeks(specified index) degerindeki karakteri dondurur.
public class CharAtTest { public static void main(String[] args) { String name = "levent"; char c = name.charAt(2); System.out.println(c); // char c2 = name.charAt(10); // java.lang.StringIndexOutOfBoundsException } }
Java’da index degerlerinin 0 dan basladigini unutmayalim 2.index –> 3.karakter olacaktir bu da v harfidir. Index degeri olarak uygun bir deger vermezsek bu durumda StringIndexOutOfBoundsException hatasi aliriz.
codePointAt
public int codePointAt(int index) { ... }
codePointAt metodu , String literali icerisinde, index’i verilen karakterin Unicode degerini bize dondurur.
public class CodePointAt { public static void main(String[] args) { System.out.println("a".codePointAt(0)); } }
getChars
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) { ...}
srcBegin , kopyalanacak String literalin baslangic indexi (dahil)
srcEnd , kopyalanacak String literalin son karakteri(haric)
dst , kopyalanacak array
dstBegin , kopyalanacak array icin, kopyalamaya baslanacak index
public class GetCharsTest { public static void main(String args[]) { String str = new String("injavawetrust"); char[] charArray = new char[4]; //injavawetrust icin, 2.index baslangic -->j // 6.karakter dahil degil --> bu durumda ilgili string java olacaktir. //charArray e kopyalanacaktir, 0.indexten baslanacaktir. str.getChars(2, 6, charArray, 0); System.out.println(charArray); } }
getBytes
public byte[] getBytes() {..}
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException { ... }
public byte[] getBytes(Charset charset) {...}
getBytes metodunun overloaded versiyonlari bulunmaktadir. String literaldeki karakterleri byte dizisine cevirir. Overloaded versiyonlarinda bu encoding islemi icin ilgili Charset’i kullanir.
public class GetBytesTest { public static void main(String[] args) { String name = "levent erguder"; byte bytes[] = name.getBytes(); for (byte b : bytes) { System.out.println(b); } } }
compareTo & compareToIgnoreCase
public int compareToIgnoreCase(String str) {...}
public int compareTo(String anotherString) {...}
compareTo metodu lexicographically(sozluksel bicimde) karsilastirma yapmamizi saglar. Karsilastirma islemi Unicode degerine gore olmaktadir.
Sonuc negatif sayi ise soldaki String sagdaki Stringten lexicographically(sozluksel bicimde) olarak daha oncedir.
Sonuc pozitif sayi ise soldaki String sagdaki Strinden daha sonradir.
Sonuc 0 ise ayni String degere sahiptir.(equal)
public class CompareToTest { public static void main(String[] args) { System.out.println("a".compareTo("d")); System.out.println("b".compareTo("d")); System.out.println("e".compareTo("a")); System.out.println("ABa".compareTo("ABc")); System.out.println("a".compareToIgnoreCase("A")); System.out.println("l".compareTo("e")); System.out.println("levent".compareTo("erguder")); // ilk olarak l ve e arasinda farklilik oldugu icin unicode olarak aradaki fark donecektir } }
NOT : String sinifinda yer alan bir cok metodu burada aciklamaya calisicam. Bu yazi metotlar bitene kadar guncellenecektir.
Sinavda sorumlu olunan metotlar cok daha azdir. Fakat gercek hayatta daha cok metoda ihtiyacimiz var bu nedele mumkun oldugunca hepsini paylasicam insallah.
Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer
Leave a Reply