Java'da String Metodları

Java'da String Metodları

String sınıfı Java'da metinler tanımlamak için kullanılır ve bize metinler üzerinde çeşitli işlemler gerçekleştirmemiz için yardımcı fonksiyonlar sunar. Java'da bir metin aşağıdaki gibi tanımlanabilir:
public class StringOrnek1
{     
    public static void main(String[] args) 
{         
   // string tanımlanması         
   String myString = "Merhaba dunya";     
}
Bu şekilde myString adında bir değişkene "Merhaba dunya" yazısını atamış oluyoruz.
Bu metinin uzunluğunu (karakter sayısını) merak edersek length metodunu çağırmamız gerekir:
public class StringOrnek2 {
    public static void main(String[] args) {

        // string tanımlanması
        String myString = "Merhaba dunya";
        System.out.println("Uzunluk " + myString.length());
    }
}
Böylece tanımlanan değişkende kaç karakter olduğunu konsola yazdırmış olduk. Şimdi ise konsola sadece "dünya" kelimesinin yazılmasını sağlayalım:
public class StringOrnek3 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dunya";

    System.out.println(myString.substring(8, myString.length()));
    }
}
Eğer elimizdeki "Merhaba dunya" metnini bir dizi olarak düşünürsek harflerin dizinleri (index) aşağıdaki şekilde olacaktır:
merhaba dünya
0123456789101112
Sadece "dunya" kelimesini yazdırmamız için 8. karakterden başlayarak son karaktere kadar olan bölümü almamız gerekir. substring metodu başlangıç ve bitiş dizinleri arasında kalan karakterleri bir String olarak döndürür: 
"Merhaba" kelimesi ise aşağıdaki şekilde görüntülenir:
public class StringOrnek4 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dunya";

    System.out.println(myString.substring(0, 7));
    }
}
Yukarıdaki örnekte 0 - 7 arasındaki (0 dahil 7 hariç) karakterler konsola yazılacaktır.
Bir harfin ya da String değerinin kaçıncı dizinden (index) itibaren başladığını merak ediyorsanız, indexOf metodunu kullanabilirsiniz. Örneğin "dunya" kelimesinin kaçıncı dizinde olduğunu öğrenmek için
public class StringOrnek5 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dunya";

    System.out.println("Dunya baslangici " + myString.indexOf("dunya"));
    }
}
NOT: indexOf metodu eğer aranan metni bulamazsa -1 döndürür. Bu şekilde metinler içinde arama yapabilirsiniz. (örneğin “ahmet.mail.com”.indexOf(“@”) == -1 ise eposta adresi yanlış girilmiştir gibi)
Bir metni başka bir metinle karşılaştırmak için equals ya da equalsIgnoreCase metodlarını kullanabilirsiniz. equalsIgnoreCase metodu, karşılaştırılan metni öncelikle küçük harflere çevirir ve ardından karşılaştırma yapar. Böylelikle büyük-küçük harf durumundan doğacak sorunun önüne geçilmiş olur.
public class StringOrnek6 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dünya";

    if (myString.equalsIgnoreCase("merhaba dünya"))
        System.out.println("Aynı deger");
    }
}

Bir metni küçük harflere çevirmek için toLowerCase, büyük harflere çevirmek içinse toUpperCase metodlarını kullanabilirsiniz:
public class StringOrnek7 {

    System.out.println("Kucuk harfler : " + myString.toLowerCase());

}
Bir metin içerisindeki boşluklardan kurtulmak için trim metodu kullanılır. trim metodu, metnin sonunda ve başında yer alan boşlukları yok ederken kelime aralarındaki boşluklara dokunmaz. Bu metod özellikle kullanıcıların formlar ile gönderdiği verilerde (isim, e-posta vs.) veritabanına kayıt etmeden önce kullanılmalıdır. Böylece olası kullanıcı hataları biraz olsun azaltılabilir ve ileride doğabilecek karşılaştırma hatalarının önüne geçilmiş olur.
public class StringOrnek8 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dunya";

    myString = "Merhaba dunya ";
    System.out.println("Bosluklar yok " + myString.trim());

    }
}
Bir metni parçalara bölmek için (örneğin boşluklara göre ayırıp kelimeleri ayıklama) split metodu kullanılır. split metodu regex bir ifade içerisindeki kurallara göre String değişkenini böler ve bir String dizisi haline getirir.
public class StringOrnek9 {
    public static void main(String[] args) {

    // string tanımlanması
    String myString = "Merhaba dunya";

    String[] words = myString.split(" ");
    }
}
Yukarıdaki örnekte "Merhaba dunya" metni boşluklara göre parçalanmış ve dizinin içerisinde "Merhaba" ve "dunya" değerini taşıyan iki adet String oluşturulmuştur. Bir metin değerini İnternet bağlantısı ya da başka bir akış (Stream) üzerinden yollamak istersek byte değerine çevirmemiz gerekebilir. Bir String içerisindeki her harfin
byte değerini hesaplayıp String'i byte dizisine çeviren metod getBytes metodudur.

public class StringOrnek10 
{     
   public static void main(String[] args) 
{         
   // string tanımlanması        
   String myString = "Merhaba dünya";         
   byte[] strByte = myString.getBytes();         
   System.out.println(new String(strByte));     
}
Bir byte dizisi tekrar String'e dönüştürülmek istendiğinde String sınıfının yapıcılarından (Constructor) faydalanabiliriz.

String Metotlarıyla İlgili Örnek Java Programları

Örnek 1: equals

public class StringUyg1{
    public static void main(String[] arg){
        String st1="melisa";

        if(st1.equals("melisa")) {
            System.out.println("");
            System.out.println("string melisa dir.");
        }

        if(st1.equals("MELISA")) {
            System.out.println("");
            System.out.println("string MELISA dir.");
        }

        if(st1.equalsIgnoreCase("MELISA")) {
            System.out.println("");
            System.out.println("string MELISA dir.");
        }
    }
}

Programın çıktısı:

AÇIKLAMA: Yukardaki programda bulunan 3 adet if’ten ilki ve üçüncüsü doğru, ikincisi ise yanlış olacaktır. Bu nedenle 2 mesaj alınır.

Örnek 2: length


public class StringUyg2 {
    public static void main(String[] arg){
        String st1="melisa";
        int i;

        for(i=0; i<=st1.length()-1; i++) {
            System.out.println("");
            System.out.println(st1.charAt(i));
        }
    }
}
Programın çıktısı:
AÇIKLAMA: Çıktıdan kolayca anlayacağımız üzere, bu program verilen bir String'i karakterlerine parçalayarak her karakteri bir satıra yazdırmaktadır. String'in uzunluğunu (kaç karakterden oluştuğunu) bulmak için length metodu kullanılır.

ÖRNEK 3: compareTo fonksiyonu

public class StringUyg3 {
    public static void main(String[] arg){
        String st1="melisa";
        int i;
        
        i=0;
        i=st1.compareTo("zehra");
        System.out.println(st1);
        
        if(i==0) {
            System.out.println("");
            System.out.println(st1+" =  "+"zehra");
        }
        
        if(i>0) {
            System.out.println("");
            System.out.println(st1+" >  "+"zehra");
        }
        
        if(i<0) {
            System.out.println("");
            System.out.println(st1+"  < "+"zehra");
        }
        
        System.out.println("i="+i);
    }
}
Programın çıktısı:
AÇIKLAMA: Melisa sözcüğü alfabetik ortamda Zehra'dan önce gelir ve dolayısıyla daha küçük kabul edilir; bu nedenle i’nin sayısal değeri negatif bir tam sayı olarak atanmıştır.

ÖRNEK 4: compareTo fonksiyonu

public class StringUyg4 {
    public static void main(String[] arg){
        String st1="melisa";
        int i;

        i=0;
        i=st1.compareTo("ayse");

        System.out.println(st1);
        if(i==0) {
            System.out.println("");
            System.out.println(st1+" =  "+"ayse");
        }

        if(i>0) {
            System.out.println("");
            System.out.println(st1+" >  "+"ayse");
        }

        if(i<0) {
            System.out.println("");
            System.out.println(st1+"  < "+"ayse");
        }
        System.out.println("i="+i);
    }
}

Programın çıktısı:

AÇIKLAMA: Melisa alfabetik olarak Ayse'den önce gelmediği için i’nin değeri pozitif bir sayı olarak çıkmıştır.

ÖRNEK 5:  indexOf fonksiyon

public class StringUyg5 {
    public static void main(String[] arg){
        String st1="anadolu";
        int i;
        
        i=0;
        System.out.println("KARAKTER"+"   "+"INDEKSI");
        
        for(i=0; i<=st1.length()-1; i++)
            System.out.println(st1.charAt(i)
                    +"            "
                    +i);
    }
}

Programın çıktısı:

AÇIKLAMA: Programda, st1 String'i içindeki anadolu karakter dizisinin her harfi ve bu harfin karakter dizisi içindeki indisi birer satıra yazdırılmıştır.

ÖRNEK 6: getChars fonksiyonu

public class StringUyg6 {
    public static void main(String[] arg){
        String st1="anadolu";
        char karDiz[];
        karDiz=new char[7];
        int i=0;
        
        System.out.println("KARAKTER"+"   "+"INDEKSI");
        for(i=0; i<=st1.length()-1; i++) {
            System.out.println(st1.charAt(i)
                    +"            "
                    +i);
        }

        st1.getChars(3,7,karDiz,0);

        System.out.println("Yeni dizi: ");
        for(i=0; i<karDiz.length; i++)
            System.out.println(karDiz[i]);
    }
}

Progrmın çıktısı:

AÇIKLAMA: anadolu String'inin, indisi 3 olan d karakterinden, indisi 7-1=6 olan karakterine (u) kadar olan kısmı karDiz adlı diziye kopyalanmıştır. karDiz adlı dizinin içeriği “dolu” olarak atanmıştır.

ÖRNEK 7: startsWith ve endsWith fonksiyonları

public class StringUyg7 {
    public static void main(String[] arg){
        String st1[]={"ankara","antalya","burdur","bursa","anadolu"};
        int i;

        for (i=0; i<st1.length; i++) {
            if(st1[i].startsWith("an")) {    
                System.out.println();
                System.out.println(st1[i]+" stringi an  harfleri ile basliyor");
            }
        }
        System.out.println();

        for (i=0; i<st1.length; i++) {
            if(st1[i].endsWith("a")) {
                System.out.println();
                System.out.println(st1[i]+" stringi a  harfi ile bitiyor");
            }
        }
        System.out.println();

        for (i=0; i<st1.length; i++) {
            if(st1[i].startsWith("ka",2))
            {
                System.out.println();
                System.out.println(st1[i]+" stringi 2. indisten itibaren ka harfleri ile basliyor");
            }
        }
    }
}

Programın çıktısı:

AÇIKLAMA: Elemanları "ankara", "antalya", "burdur", "bursa", "anadolu" olan st1 adlı String dizisi oluşturulmuş, bu dizinin elemanları arasında “an” ile başlayanlar, ”a” ile bitenler ve 2 ile 3 indisli karakterleri “ka” olanlar listelenmiştir.

Yorumlar

Bu blogdaki popüler yayınlar

İç İçe Döngüler

CSS Bir Elemanın Genişliği ve Yüksekliği

JavaScript Dilinde Fonksiyon Çağırma Teknikleri