12. Łańcuchy znakowe

Łańcuchy znakowe w Javie

Łańcuch znakowy w Javie to nic innego jak zestaw znaków UNICODE.

Należy zapamiętać, że wszystkie „stringi” w Javie są obiektami (nie są typami prostymi!). Łańcuchy znakowe to najpopularniejsze obiekty w języku Java.

Łańcuchy znakowe w Javie

Klasa String

Klasa String jest klasą wbudowaną, tzn. jest już stworzona, predefiniowana w języku Java, tak więc od razu możemy korzystać z jej metod. Służy ona do reprezentacji ciągów znakowych i to właśnie obiekty „string” są instancjami tej klasy.

Operacji, jakich można dokonać na łańcuchach znakowym jest bardzo wiele. Poniżej przedstawię te najpopularniejsze:

Metoda Substring w Javie

Metoda substring


Metoda substring() służy do wydobywania podłańcucha ze wskazanego łańcucha znakowego. Ta metoda zwraca nowy obiekt String zawierający podłańcuch danego łańcucha z określonego startIndex do endIndex. 

Formułka

substring(index początkowy, index końcowy);

Przykład zastosowania:

String x = "Automatyzacja";

String podlancuch = x.substring(0,4);

Wynik: System.out.println(podlancuch); --> Auto

Konkatenacja

Konkatenacja to łącznie łańcuchów znakowych

Konkatenować (łączyć) łańcuch znakowe możemy na wiele sposobów m. in. operator +StringBuilderStringBuffer lub String.format().

Przykład zastosowania:

String komunikat = "Programowanie";

String jezykProgramowania= "Java";

String pelnyKomunikat = komunikat + " " + jezykprogramowania;

Wynik: System.out.println(pelnyKomunikat); -> Programowanie Java

Metoda equals

Metoda equals() służy do porównywania łańcuchów znakowych (obiektów).

Przykład zastosowania:


String a = "java";
String b = "java";
if(a.equals(b)){
System.out.println("a równa b");
}else {
System.out.println("a nie jest równe b");
}
Wynik: a równe b

Metoda equalsIgnoreCase



Metoda equalsIgnoreCase() służy do porównywania łańcuchów znakowych (obiektów), ale ignoruje różnice w wielkości znaków (duże, małe literty).

String a = "java";
String b = "Java";
if(a.equalsIgnoreCase(b)){
System.out.println("a równa b");
}else {
System.out.println("a nie jest równe b");
}


Wynik: a nie jest równe b

Metoda length

Metoda length() zwraca długość łańcucha znakowego, na którym została wykonana.

Przykład zastosowania:

String x = "Automatyzacja";

int długosc = x.length();

System.out.println("Długość łańcucha znakowego = " + długosc);

String abc = "";

System.out.println("Długość łańcucha pustego = " + abc.lenth());

Wynik: 13

Wynik: 0

Metoda charAt (index znaku);

Metoda charAt (index znaku); zawraca znak pod podanym indeksem.

Przykład zastosowania:

char piatyZnak = x.char.At(4);

System.out.println("Piaty znak = " + piatyZnak());

Wynik: m

Metoda indexOf(’Znak’);

Metoda indexOf(’znak’); zwraca index wskazanego znaku. W przypadku, gdy wskazany znak istnieje w łańcuchu kilka razy, zostanie zwrócony index pierwszego wystąpienia znaku.

Przykład zastosowania:

String pelnyKomunikat = "Programowania Java";

int index = pelnyKomunikat.indexOf("g");

System.out.println(index);

Wynik: 3

Metod replace (stareZnaki, noweZnaki);

Metoda replace() służy do zastępowania, podmieniania znaków w łańcuchach.

Przykład zastosowania:

String pelnyKomunikat = "Programowania Java";

String nowyKomunikat = pelnyKomunikat.replace("Java", "C++");

System.out.println("Nowy komunikat =" + nowyKomunikat);

Wynik: Programowanie C++

Metody toUpperCase() , toLowerCase()

Metody te służą do zmiany wielkości liter we wskazanych łańcuchach.

Przykład zastosowania:

String nowyKomunikat = "Programowanie C++";

System.out.println("Nowy komunikat (wielkie litery) = " + nowyKomunikat.toUpperCase());

System.out.println("Nowy komunikat (małelitery) = " + nowyKomunikat.toLowerCase());

Wynik: Nowy komunikat (wielkie litery) = PROGRAMOWANIE C++

Wynik: Nowy komunikat (małe litery) = programowanie c++

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *