KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch
Osnova cvičení Třída String a její metody –Řetězce a operace s nimi
Třída String Dosud jsme pracovali jen s konstantními řetězci (pokaždé uzavřené v uvozovkách) –Např. v Systém.out.println(“retezec”); Objekty vytvořené z třídy String slouží k uchovávání řetězců (tedy textu nebo skupiny znaků) a práci s nimi Standardní třída
Třída String Pouze statické řetězce (nedají se měnit) –Podřetězec nebo náhrada znaku (+víceméně veškeré operace s řetězci) není změna vzniká nový řetězec, původní nezměněn Množství metod pro práci s řetězci Vytvoření řetězce a uložení do proměnné: –String retezec = “Toto je retezec ulozeny v promenne”;
Třída String Načtení řetězce z klávesnice: Načtení celé řádky: –Scanner sc = new Scanner(System.in); –String radka = sc.nextLine(); Načtení jednoho slova: –Scanner sc = new Scanner(System.in); –String slovo = sc.next();
Třída String Přehled metod a operací s řetězci –Sřetězení (spojení řetězců): String spojeny = retezec1 + retezec2; –Zjištění délky řetězce: int a = retezec.length(); //metoda ne promenna –Získání znaku z řetězce: char a = retezec.chatAt(index); //indexuje se od 0 do length() - 1
Třída String Přehled metod a operací s řetězci –Porovnání řetězců: if (retezec1.equals(retezec2)) nebo if (retezec1.equalsIgnoreCase(retezec2) –Povnovnání bez ohledu na malá a velká písmenka –Lexikografické porovnání if (retezec1.compareTo(retezec2) == 0) nebo if (retezec1.compareToIgnoreCase(retezec2) == 0) –Povnovnání bez ohledu na malá a velká písmenka –Pozn. takto nelze porovnávat: if (retezec1 == retezec2) //porovnání objektů
Třída String Přehled metod a operací s řetězci –Zjištění výskytu podřetězce if (retezec.contains(“ahoj”)) //obsahuje ahoj? –Zjištění, zda řetězec začíná nebo končí jiným řetězcem: if (retezec.startsWith(“ahoj”) //zacina ahoj? if (retezec.endsWith(“ahoj”) //konci ahoj? –Nahrazení podřetězce podřetězcem String rezecNovy = retezec.replace(“stary”, “novy”); Lze použít regulární výrazy místo „stary“
Třída String Přehled metod a operací s řetězci –Rozdělení řetězce na pole řetězců podle dělícího znaku: String prvni = “a_b_c_d_e”; String[] rozdeleny = prvni.split(“_”); –V rozdeleny[0] bude “a” atd. –Získání podřetězce: String retezec = jinyRet.substring(0,3); –V retezec budou první 3 znaky z jinyRet String retezec = jinyRet.substring(5); –V retezec budou všechny znaky od 5. do konce jinyRet
Třída String Přehled metod a operací s řetězci –Oříznutí „bílých“ znaků ze začátku a konce řetězce: String a = “ ahoj ”; String b = a.trim(); –V b bude uloženo jen ahoj –Převedení na velká / malá písmenka v celém řetězci: String a = „AhOj, ToHle jE aLe DiVnY TeXt“; String malymi = a.toLowerCase(); //vše malými String velkymi = a.toUpperCase(); //vše velkými