Java’da String, StringBuilder, StringBuffer ve StringTokenizer
Published: 2024-05-17 14:49:46

### String
- `String` sınıfı, karakter dizilerini temsil eder¹³.
- Java'da stringler **immutable** yani değiştirilemezdir. Bir string oluşturulduğunda, onun değeri programın çalışması boyunca aynı kalır¹⁴.
- `String` sınıfı, `+` operatörü ile string birleştirme, `substring` ile alt string alma, `charAt` ile belirli bir indeksteki karakteri alma gibi birçok metoda sahiptir¹⁵.

### StringBuilder
- `StringBuilder` sınıfı, değiştirilebilir (mutable) karakter dizileri oluşturmak için kullanılır¹.
- `String`'e benzer işlevselliklere sahip olmasına rağmen, `StringBuilder`'ın içeriği değiştirilebilir ve bu sayede daha performanslı çalışır².
- `append`, `insert`, `delete` gibi metotlarla dinamik olarak string manipülasyonu yapılabilir³.

### StringBuffer
- `StringBuffer` da `StringBuilder` gibi değiştirilebilir karakter dizileri oluşturur⁴.
- Ancak `StringBuffer` sınıfı **thread-safe** yani çoklu thread kullanımına uygun olarak senkronize edilmiştir⁵.
- Bu nedenle, çoklu thread'lerin aynı string üzerinde çalıştığı durumlarda `StringBuffer` tercih edilir⁶.

### StringTokenizer
- `StringTokenizer` sınıfı, bir stringi belirli ayırıcılar (delimiters) kullanarak tokenlere ayırmak için kullanılır⁸.
- Bu sınıf, basit tokenleme işlemleri için kullanışlıdır ve `Enumeration` arayüzünü uygular⁹.
- Ancak, `StringTokenizer` eski bir sınıftır ve yeni kodlarda `String.split` metodu veya `java.util.regex` paketi kullanılması önerilir[^10^].

Bu dört sınıf, Java'da string işlemleri için farklı ihtiyaçlara hizmet eder. `String` sabit stringler için, `StringBuilder` ve `StringBuffer` değiştirilebilir stringler için kullanılırken, `StringTokenizer` ise stringleri tokenlere ayırmak için kullanılır. Eğer bu konularda daha fazla bilgiye ihtiyacınız varsa veya örnekler isterseniz, lütfen sormaktan çekinmeyin!



### String Örneği
```java
public class StringOrnegi {
    public static void main(String[] args) {
        String selam = "Merhaba";
        String dunya = " Dünya!";
        String cumle = selam + dunya; // String birleştirme
        System.out.println(cumle); // "Merhaba Dünya!" yazdırır
    }
}
```

### StringBuilder Örneği
```java
public class StringBuilderOrnegi {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Merhaba");
        sb.append(" Dünya!"); // String'e ekleme yapar
        System.out.println(sb.toString()); // "Merhaba Dünya!" yazdırır
    }
}
```

### StringBuffer Örneği
```java
public class StringBufferOrnegi {
    public static void main(String[] args) {
        StringBuffer sbf = new StringBuffer("Merhaba");
        sbf.append(" Dünya!"); // String'e ekleme yapar
        System.out.println(sbf.toString()); // "Merhaba Dünya!" yazdırır
    }
}
```

### StringTokenizer Örneği
```java
import java.util.StringTokenizer;

public class StringTokenizerOrnegi {
    public static void main(String[] args) {
        StringTokenizer st = new StringTokenizer("Bu bir test cümlesidir.", " "); // Boşluk karakterine göre ayırır
        while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
        // "Bu", "bir", "test", "cümlesidir." şeklinde ayrı ayrı yazdırır
    }
}
```

Bu örnekler, Java'daki string işlemleri ve bu sınıfların temel kullanımlarını göstermektedir.