Bu eğitimde, örnekler yardımıyla Java Strings, bunların nasıl oluşturulacağı ve çeşitli String yöntemleri hakkında bilgi edineceğiz.
Java'da bir dize, bir karakter dizisidir. Örneğin, "merhaba", bir dizi 'h', 'e', 'l', 'l' ve 'o' karakterlerini içeren bir dizedir.
Java'da bir dizeyi temsil etmek için çift tırnak kullanıyoruz . Örneğin,
// create a string String type = "Java programming";
Burada type adında bir string değişken oluşturduk. Değişken dizge ile başlatılır Java Programming
.
Not : Java Strings ilkel türleri (gibi değildir int
, char
vs.). Bunun yerine, tüm dizeler adlı önceden tanımlanmış bir sınıfın nesneleridir String
.
Ve tüm dize değişkenleri String
sınıfın örnekleridir .
Örnek: Java'da Dize Oluşturma
class Main ( public static void main(String() args) ( // create strings String first = "Java"; String second = "Python"; String third = "JavaScript"; // print strings System.out.println(first); // print Java System.out.println(second); // print Python System.out.println(third); // print JavaScript ) )
Yukarıdaki örnekte birinci, ikinci ve üçüncü adında üç dize oluşturduk. Burada, ilkel türler gibi doğrudan dizeler oluşturuyoruz.
Bununla birlikte, Java dizeleri oluşturmanın başka bir yolu vardır ( new
anahtar kelimeyi kullanarak ). Bunu daha sonra bu eğitimde öğreneceğiz.
Java String İşlemleri
Java String, dizeler üzerinde farklı işlemler gerçekleştirmek için çeşitli yöntemler sağlar. Yaygın olarak kullanılan dizgi işlemlerinden bazılarına bakacağız.
1. Bir Dizenin Uzunluğunu Alın
Bir dizgenin uzunluğunu bulmak length()
için String metodunu kullanıyoruz . Örneğin,
class Main ( public static void main(String() args) ( // create a string String greet = "Hello! World"; System.out.println("String: " + greet); // get the length of greet int length = greet.length(); System.out.println("Length: " + length); ) )
Çıktı
Dize: Merhaba! Dünya Uzunluğu: 12
Yukarıdaki örnekte, length()
yöntem dizedeki toplam karakter sayısını hesaplar ve döndürür. Daha fazla bilgi edinmek için Java String length () adresini ziyaret edin.
2. İki Dizeyi birleştirin
concat()
Yöntemi kullanarak Java'da iki dizgeyi birleştirebiliriz . Örneğin,
class Main ( public static void main(String() args) ( // create first string String first = "Java "; System.out.println("First String: " + first); // create second String second = "Programming"; System.out.println("Second String: " + second); // join two strings String joinedString = first.concat(second); System.out.println("Joined String: " + joinedString); ) )
Çıktı
İlk Dize: Java İkinci Dize: Programlama Birleştirilmiş Dizgi: Java Programlama
Yukarıdaki örnekte, birinci ve ikinci adında iki dizge oluşturduk. İfadeye dikkat edin,
String joinedString = first.concat(second);
Burada, concat()
yöntem birinci ve ikinci olarak birleştirilir ve onu birleştirilmişString değişkenine atarız.
+
Java'daki operatörü kullanarak iki dizgeyi de birleştirebiliriz . Daha fazla bilgi edinmek için Java String concat () adresini ziyaret edin.
3. İki Dizeyi Karşılaştırın
Java'da equals()
yöntemi kullanarak iki dizge arasında karşılaştırma yapabiliriz . Örneğin,
class Main ( public static void main(String() args) ( // create 3 strings String first = "java programming"; String second = "java programming"; String third = "python programming"; // compare first and second strings boolean result1 = first.equals(second); System.out.println("Strings first and second are equal: " + result1); // compare first and third strings boolean result2 = first.equals(third); System.out.println("Strings first and third are equal: " + result2); ) )
Çıktı
Birinci ve ikinci dizeler eşittir: true Birinci ve üçüncü dizeler eşittir: false
Yukarıdaki örnekte birinci, ikinci ve üçüncü adında 3 karakter dizisi oluşturduk. Burada, equal()
bir dizenin diğerine eşit olup olmadığını kontrol etmek için yöntemi kullanıyoruz .
equals()
Yöntem denetler onları dizeleri içeriği karşılaştırarak ederken. Daha fazla bilgi edinmek için Java String equals () adresini ziyaret edin.
Not : ==
Java'da operatörü kullanarak iki dizeyi de karşılaştırabiliriz . Ancak bu yaklaşım equals()
yöntemden farklıdır . Daha fazla bilgi edinmek için Java String == vs equals () adresini ziyaret edin.
Java Dizgesinin Yöntemleri
Yukarıda bahsedilenlerin yanı sıra, Java'da bulunan çeşitli dizgi yöntemleri vardır. İşte bu yöntemlerden bazıları:
Yöntemler | Açıklama |
---|---|
alt dize () | dizenin alt dizesini döndürür |
değiştir () | belirtilen eski karakteri belirtilen yeni karakterle değiştirir |
charAt () | belirtilen konumda bulunan karakteri döndürür |
getBytes () | dizeyi bir bayt dizisine dönüştürür |
indeksi() | dizedeki belirtilen karakterin konumunu döndürür |
karşılaştırmak() | sözlük sırasındaki iki dizeyi karşılaştırır |
trim () | baştaki ve sondaki beyaz boşlukları kaldırır |
biçim() | biçimlendirilmiş bir dize döndürür |
Bölünmüş() | dizeyi bir dizi diziye böler |
toLowerCase () | dizeyi küçük harfe dönüştürür |
toUpperCase () | dizeyi büyük harfe dönüştürür |
değeri() | belirtilen bağımsız değişkenin dize temsilini döndürür |
toCharArray () | dizeyi bir char diziye dönüştürür |
Java Dizelerinde kaçış karakteri
Çıkış karakteri, bir dizede bulunan bazı karakterlerden kaçış yapmak için kullanılır.
Bir dizenin içine çift tırnak eklememiz gerektiğini varsayalım.
// include double quote String example = "This is the "String" class";
Since strings are represented by double quotes, the compiler will treat "This is the " as the string. Hence, the above code will cause an error.
To solve this issue, we use the escape character in Java. For example,
// use the escape character String example = "This is the "String " class.";
Now escape characters tell the compiler to escape double quotes and read the whole text.
Java Strings are Immutable
In Java, strings are immutable. This means, once we create a string, we cannot change that string.
To understand it more deeply, consider an example:
// create a string String example = "Hello! ";
Here, we have created a string variable named example. The variable holds the string "Hello! ".
Now suppose we want to change the string.
// add another string "World" // to the previous tring example example = example.concat(" World");
Here, we are using the concat()
method to add another string World to the previous string.
It looks like we are able to change the value of the previous string. However, this is not true
.
Let's see what has happened here,
- JVM takes the first string "Hello! "
- creates a new string by adding "World" to the first string
- assign the new string "Hello! World" to the example variable
- the first string "Hello! " remains unchanged
Creating strings using the new keyword
So far we have created strings like primitive types in Java.
Since strings in Java are objects, we can create strings using the new
keyword as well. For example,
// create a string using the new keyword String name = new String("Java String");
In the above example, we have created a string name using the new
keyword.
Here, when we create a string object, the String()
constructor is invoked. To learn more about constructor, visit Java Constructor.
Note: The String
class provides various other constructors to create strings. To learn more, visit Java String (official Java documentation).
Example: Create Java Strings using the new keyword
class Main ( public static void main(String() args) ( // create a string using new String name = new String("Java String"); System.out.println(name); // print Java String ) )
Create String using literals vs new keyword
Now that we know how strings are created using string literals and the new
keyword, let's see what is the major difference between them.
In Java, the JVM maintains a string pool to store all of its strings inside the memory. The string pool helps in reusing the strings.
While creating strings using string literals, the value of the string is directly provided. Hence, the compiler first checks the string pool to see if the string already exists.
- Dize zaten varsa , yeni dizge oluşturulmaz. Bunun yerine, yeni referans mevcut dizgeye işaret eder.
- Dize yoksa , yeni dizi oluşturulur.
Ancak, new anahtar sözcüğünü kullanarak dizeler oluştururken , dizenin değeri doğrudan sağlanmamaktadır. Bu nedenle yeni dizge her zaman oluşturulur.