"Merhaba, Amigo!"

"Ama Bilaabo, zaten merhaba dedin."

"Gerçekten mi? Yine de her derse bu cümleyle başlamayı seviyorum."

"Bugün String sınıfını derinlemesine inceleyeceğiz."

"Ama ben zaten onun hakkında her şeyi biliyorum. String sınıfının değişmez olduğunu bile biliyorum."

"String sınıfının 46 yöntemi var. Kaç tanesini biliyorsun?"

"Ondan fazla değil. Aslında, muhtemelen en fazla 5."

"O zaman dinle."

"Java'nın yaratıcıları, programlardaki dizilerin çoğunun değiştirilmeye uygun olmadığını fark ettiler, ancak bazen yine de değiştiriliyorlar. Bir Dizi oluşturup, içinde önemli bir şey kaydettiğinizde, onu başka birinin yöntemine ilettiğinizde ve değiştirildiğinde çok can sıkıcı oluyor. . Bunun olmasını önlemek için hem değişken hem de değişmez Dizeler oluşturmaya karar verdiler."

"String sınıfı değişmez dizeler içindir ve StringBuilder sınıfı değişken olanlar içindir. Bu sınıfların nesneleri kolayca diğer türe dönüştürülür. Çoğu durumda Java geliştiricileri, Java'nın yaratıcılarının haklı olduğunu kanıtlayan String'e ihtiyaç duyar."

"Yani, bir String'e ihtiyacım olursa, String sınıfını kullanırım. Değişken bir String'e ihtiyacım olursa, StringBuilder sınıfını kullanırım ?"

"Evet. Aslında, StringBuffer adında başka bir sınıf daha var. Bu, StringBuilder'ın bir kopyası, tek farkı, tüm yöntemlerinin, nesneye programın farklı iş parçacıklarından erişilebilmesi için synchronized olarak bildirilmesi."

"Peki ya bu örnek? Dizi burada değişmiyor mu?"

String s = "cat";
s = s + "-" + s;

"Hayır. Burada iki String nesnesi var: «cat» ve «cat-cat». İkincisi, birinci kullanılarak oluşturulur, ancak ilk nesne değişmez. Gerçekte, burada işler çok daha ilginç. İşte kod derleyici, örneğinizi derlerken şunu üretir:"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

"Yani, StringBuilder neredeyse her zaman yeni Dizeler oluşturmak için kullanılır, ancak bazen derleyici tüm işi sizin yerinize yapar. Ama sizin sürümünüz daha basit, öyle değil mi?"

"Evet, Java'nın bu kadar gelişmiş bir derleyiciye sahip olması harika."

"Pekala, şimdi String sınıfının yöntemlerini gözden geçirelim:"

1) Bir String'in uzunluğunu nasıl bulabilirim?

" Light yöntemi, bir String'in uzunluğunu (içindeki karakter sayısı) döndürür."

Yöntem(ler) Örnek(ler)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Bir String'den nasıl karakter alabilirim?

" charAt yöntemi, dizine göre bir String'den bir karakter döndürür. Karakter dizinleri 0'dan başlar.

Yöntem(ler) Örnek(ler)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Bir String'den nasıl karakter alabilirim?

Bir String'den nasıl karakter alabilirim?

Yöntem(ler) Örnek(ler)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) Dizeleri nasıl karşılaştırırım?

"Equals yöntemi, Strings'in eşleşip eşleşmediğini kontrol eder ve equalsIgnoreCase yöntemi, büyük/küçük harf göz ardı edildiğinde Dizelerin eşleşip eşleşmediğini kontrol eder.

Yöntem(ler) Yöntem(ler)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) Bir String'deki tüm harfleri nasıl büyük veya küçük harf yapabilirim?

" toUpperCase yöntemi, tamamı büyük harflerle String'in bir kopyasını döndürür."

" toLowerCase yöntemi, tümü küçük harflerle birlikte String'in bir kopyasını döndürür."

Yöntem(ler) Örnek(ler)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

Sonuç:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

Sonuç:

s == "good news, everyone!";

6) Bir String'in başındaki ve sonundaki boşlukları nasıl kaldırırım?

"Kırpma yöntemi, başında ve sonunda boşluk karakteri olmayan bir String'in bir kopyasını döndürür."

Yöntem(ler) Örnek(ler)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Sonuç:

s == "Good news, everyone!";