"Ne düşünüyorsun Amigo? int'den sonra en popüler Java sınıfı hangisi?"

"Dersin başlığında zaten bana bir spoiler verdin Ellie. Bu String!"

"Aslında bu bir spoiler. StringKesinlikle her yerde kullanılıyor. Bilmenizin daha iyi olacağı bir sürü faydalı yöntemi var.

" StringSınıf, ilkel türler dışında değişmez değerleri bir ifadede kullanılabilen tek sınıftır switch; derleyici, dize eklemeyi ve String nesnelerini özel bir şekilde işler; Stringnesneler, bellekte özel bir şekilde öykülenir. Temel olarak, sınıf Stringçok Özel sınıf.

"Ayrıca Stringsınıfta, amacı Java'da dizelerle çalışmayı daha da basitleştirmek olan bir grup yardımcı sınıf var. Tüm bunları öğrendiğinizde, birçok şeyi yapmanız gerçekten çok daha kolay hale gelecek."

"Bekleyemiyorum."

"Pekala, bu ekosistemin en özünden, sınıfın organizasyonundan başlayacağız String. Sınıfın yapısı aslında çok basit: içinde bir karakter dizisi ( dizi) Stringvar ve bu dizgenin tüm karakterlerini saklıyor. Örneğin, 'Merhaba' kelimesi şu şekilde saklanır:char

String sınıfının yapısı

Bu önemli.

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

String sınıfının yöntemleri

Sınıfın Stringbirçok yöntemi vardır: yalnızca 18 kurucusu vardır! Bu nedenle, aşağıda yalnızca en sık kullanılanları listeleyeceğim:

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()
Dize havuzuna bir dize koyar.

"Bu çok iyi görünüyor!"

"Bir dosya yolunu Unix stilinden Windows stiline dönüştüren bir program yazalım. Unix, karakteri /klasörleri ayırmak için kullanırken, Windows \karakteri kullanır.

Çözüm 1.char Bir dizi kullanma

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.

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

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 /bir 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.\

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

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.

"Ben en çok üçüncü çözümü beğendim. Ama üçünün de alıştırmasını yapacağım."

"Aferin Amigo. Yeni öğrendiklerini uygulamaya koymak için şimdiden sabırsızlandığını görüyorum. Ders bitti."