String1. Sınıfın yapısı

Bugün sınıf hakkında konuşacağız String. Int'lerden sonra String sınıfı, Java'daki en popüler sınıftır. Kesinlikle her yerde kullanılır. Bilmenizin daha iyi olacağı bir sürü faydalı yöntemi var.

Sınıf String, değişmez değerleri bir ifadede kullanılabilen ilkel türler dışındaki tek sınıftır switch; derleyici, dize eklemeyi ve String nesnelerini özel bir şekilde işler; Stringnesneler hafızada özel bir şekilde saklanır. Temel olarak, Stringsınıf çok özel bir sınıftır.

Ayrıca, Stringsınıf, amacı Java'da dizelerle çalışmayı daha da basitleştirmek olan bir grup yardımcı sınıfa sahiptir. Tüm bunları öğrendiğinizde, birçok şeyi yapmanız gerçekten çok daha kolay hale gelecek. Pekala, bu ekosistemin özünden, sınıfın organizasyonundan başlayacağız String.

karakter dizisi

Sınıfın yapısı Stringaslında çok basittir: İçinde dizgenin tüm karakterlerini saklayan bir karakter dizisi (char dizisi) vardır. Örneğin, 'Merhaba' kelimesi şu şekilde saklanır:

String sınıfının yapısı
Önemli!

Aslında, bu tam olarak doğru değil. Sınıf çok önemli olduğu için Stringbirçok iyileştirme kullanır ve veriler dahili olarak bir karakter dizisi olarak değil, yalnızca bir bayt dizisi olarak depolanır.


2. Sınıfın Stringyöntemleri

Sınıfın Stringbirçok yöntemi vardır: yalnızca 18 kurucusu vardır! Bu yüzden aşağıda sadece en temellerinden bahsediyoruz:

Yöntemler Tanım
int length()
Dizedeki karakter sayısını döndürür
boolean isEmpty()
Dizenin boş bir dize olup olmadığını kontrol eder
boolean isBlank()
Dizenin yalnızca boşluk karakterleri içerdiğini kontrol eder: boşluk, sekme, yeni satır vb.
char charAt(int index)
Dizedeki dizin konumundaki karakteri döndürür.
char[] toCharArray()
Dizeyi oluşturan karakterlerin (kopya) bir dizisini döndürür
byte[] getBytes()
Bir dizeyi bir bayt kümesine dönüştürür ve bayt dizisini döndürür.
String[] split(String regex)
Bir dizeyi birden çok alt dizeye böler.
String join(CharSequence delimiter, elements)
Birden çok alt diziyi birleştirir
String intern()
içine bir dizi koyar string pool.

Java Yapıcıları makalesinde yapıcılar hakkında daha fazla bilgi edinebilirsiniz .

Bir dosya yolunu Unix stilinden Windows stiline çeviren bir program yazalım. Unix, /karakteri klasörleri ayırmak için kullanırken, Windows \karakteri kullanır.

1. Çözüm: bir karakter dizisi kullanmak

kod notlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
Bir Tarayıcı nesnesi oluşturun
Konsoldan bir satır okuyun

Bir dizeyi karakter dizisine dönüştürün
Karakterler üzerinde döngü yapın
Karakter ise /,
ile değiştirin \. Kaçmayı unutma.

Karakter dizisine dayalı olarak yeni bir dize oluşturun.
Dizeyi göster.

2. Çözüm:split() — ve join()yöntemlerini kullanarak

kod notlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
Bir Tarayıcı nesnesi oluşturun
Konsoldan bir satır okuyun Dizeyi

bir dizi diziye dönüştürün . Karakter /ayırıcı olarak kullanılır (fazladan iki eğik çizgi, çift kaçışın sonucudur). Dize dizisindeki
tüm dizeleri birleştirin . The ayırıcı olarak kullanılır (kaçırdığını görürüz). Dizeyi göster. \

3. Çözüm:replace(char oldChar, char newChar) — yöntemi kullanarak

kod notlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
Bir Tarayıcı nesnesi oluşturun
Konsoldan bir satır okuyun

Bir karakteri diğeriyle değiştirin
(ikincisi kaçıştır)
Dizeyi görüntüleyin.