OrgPad logo

Java - String

Created by Jindřich Zdráhal

#JAVA

Java - String

substring()

Vrátí část řetězce.

 str.substring(i) //vybere řetězec od znaku na pozici i až do konce.
str.substring(i,j) // i je index prvního znaku vybíraného řetězce, j je index znaku, který už tam nebude!

Příklad

str = "Ahoj";
System.out.println(str.substring(1,3))

výsledek

ho

startsWith()

Vrací hodnoty true/false podle toho, jestli řetězec začíná daným řetězcem.

str1.startsWith(str2)

endsWith()

Vrací hodnoty true/false podle toho, jestli řetězec končí daným řetězcem.

str1.endsWith(str2)

charAt()

Vrátí znak na daném indexu.

str.charAt(i) //kde i je integer s pozicí

regulární výraz | regex

Dost dobré nástroje:

 

práce s jednotlivými znaky

split()

Vezme řetězec, rozdělí jej na části podle uvedeného řetězce (tento dělící řetězec je sežrán) a vrátí nám to jako pole řetězců.

str.split(" ") //rozdělí nám řetězec str podle mezer a tyto budou smazány

toCharArray()

Vrátí na pole znaků.

str.toCharArray()

práce s částí řetězce

indexOf()

Vyhledá první výskyt daného řetězce nebo znaku v řetězci

String str = "ahoj jak se máš?"; int a = str.indexOf("j");

Tento program mi najde první "j" v řetězci  str a do proměnné a uloží jeho index. Pokud se tam ten řetězec nevyskytuje, vrátí hodnotu -1

Tzn., a = 3

==

Porovnává jestli reference ukazuje na stejné místo v paměti. To nemusí ani když bude mít stejnou hodnotu.

str1 == str2 //výsledek je true / false

vyhledávání

lastIndexOf()

Totéž, ale bude hledat od konce.

compareToIgnoreCase()

Stené, ale není case sensitiv.

compareTo()

Porovnává lexikografickou hodnotu řetězce.

Tzn. každé písmenko má číselnou hodnotu (dál v abecedě = větší číslo), sečte se hodnota všech těchto čísel a porovná se.

Je case sensitiv.

str1.compareTo(str2)
/* výsledky jsou integery
if s1 > s2, it returns positive number
if s1 < s2, it returns negative number
if s1 == s2, it returns 0 */

 

porovnávání

https://replit.com/@ZdrahalJ/PorovnavaniStringu

 

Budu porovnávat dva řetězce str1 a str2

String

Referenční datový typ = v paměti se uchovává odkaz (reference) na místo, kde je uchovaná hodnota.

Pracuje s nimi třída String (a některé další). V této mapě bude jen třída String.

Můžeme ho (nepřesně) vnímat také jako pole znaků.

Integer.parseInt()

int i=Integer.parseInt("200");

 

převod datového typu

contains()

Hledá jestli řetězec obsahuje danou sekvenci znaků.

Je case sensitiv.

str1.contains(str2) //výsledek je true / false

equals()

Porovnává dva řetězce, vrací true, když se hodnoty řetězců rovnají.

Pozor je to case sensitiv.

str1.equals(str2) //výsledek je true/false

změny řetězců

spojování

equalsIgnoreCase()

Varianta equals, ale není case sensitiv.

převody

https://replit.com/@ZdrahalJ/PrevodyStringu

trim()

Vrátí řetězec ořezaný na krajích o "bílé znaky" což jsou mezery a podobně.

str.trim()

length()

Vrací délku řetězce.

str.length()

+

Přetížená metoda + vrátí spojené řetězce vždy, když alespoň jeden z operátorů je řetězec.

 

1 + 1 = 2  //tady sčítá
1 + "1" = 11 //alespoň jeden z parametrů je string, takže nemůže sčítat a musí spojovat

 

"Ahoj"+"jak se máš?" = "Ahojjak se máš?"
str1 + str2

toLowerCase()

Vrátí řetězec převedený na malá písmena.

str.toLowerCase();

toUpperCase()

Vrátí řetězec převedený na velká písmena.

str.toUpperCase();

replace()

Vrátí řetězec s tím, že v něm vymění všechny místa výskytu za nový kousek. Dá se použít na znak i řetězec.

str.replace('c', 'k')
str.replace("Ah", "ah")

concat()

Vrátí řetezec, který je spojením obou řetězců.

str1.concat(str2);