V tomto tutoriáli sa pomocou príkladov dozvieme o Java Strings, ako ich vytvárať a o rôznych metódach String.
V jazyku Java je reťazec postupnosťou znakov. Napríklad „ahoj“ je reťazec obsahujúci postupnosť znakov „h“, „e“, „l“, „l“ a „o“.
Na vyjadrenie reťazca v Jave používame dvojité úvodzovky . Napríklad,
// create a string String type = "Java programming";
Tu sme vytvorili premennú reťazca s názvom typ. Premenná sa inicializuje reťazcom Java Programming
.
Poznámka : Reťazce v Jave nie sú primitívne typy (podobne int
, char
atď.) Namiesto toho sú všetky reťazce objektmi preddefinovanej triedy s názvom String
.
Všetky premenné reťazca sú inštanciami String
triedy.
Príklad: Vytvorte reťazec v Jave
class Main ( public static void main(String() args) ( // create strings String first = "Java"; String second = "Python"; String third = "JavaScript"; // print strings System.out.println(first); // print Java System.out.println(second); // print Python System.out.println(third); // print JavaScript ) )
Vo vyššie uvedenom príklade sme vytvorili tri reťazce pomenované prvý, druhý a tretí. Tu priamo vytvárame reťazce ako primitívne typy.
Existuje však aj iný spôsob vytvárania reťazcov Java (pomocou new
kľúčového slova). O tom sa dozvieme neskôr v tomto návode.
Operácie s reťazcami Java
Java String poskytuje rôzne metódy na vykonávanie rôznych operácií s reťazcami. Pozrime sa na niektoré z bežne používaných operácií s reťazcami.
1. Získajte dĺžku reťazca
Na zistenie dĺžky reťazca použijeme length()
metódu String. Napríklad,
class Main ( public static void main(String() args) ( // create a string String greet = "Hello! World"; System.out.println("String: " + greet); // get the length of greet int length = greet.length(); System.out.println("Length: " + length); ) )
Výkon
Reťazec: Dobrý deň! Dĺžka sveta: 12
Vo vyššie uvedenom príklade length()
metóda vypočíta celkový počet znakov v reťazci a vráti ho. Ak sa chcete dozvedieť viac, navštívte Java String length ().
2. Spojte dve struny
concat()
Metódou môžeme spojiť dva reťazce v Jave . Napríklad,
class Main ( public static void main(String() args) ( // create first string String first = "Java "; System.out.println("First String: " + first); // create second String second = "Programming"; System.out.println("Second String: " + second); // join two strings String joinedString = first.concat(second); System.out.println("Joined String: " + joinedString); ) )
Výkon
Prvý reťazec: Java Druhý reťazec: Programovanie Pripojený reťazec: Programovanie Java
Vo vyššie uvedenom príklade sme vytvorili dva reťazce pomenované prvý a druhý. Všimnite si vyhlásenie,
String joinedString = first.concat(second);
Tu sa concat()
metóda spojí prvý a druhý a priradí ju k premennej joinString.
Môžeme tiež spojiť dva reťazce pomocou +
operátora v Jave. Ak sa chcete dozvedieť viac, navštívte Java String concat ().
3. Porovnajte dva reťazce
V Jave môžeme pomocou equals()
metódy vykonať porovnanie medzi dvoma reťazcami . Napríklad,
class Main ( public static void main(String() args) ( // create 3 strings String first = "java programming"; String second = "java programming"; String third = "python programming"; // compare first and second strings boolean result1 = first.equals(second); System.out.println("Strings first and second are equal: " + result1); // compare first and third strings boolean result2 = first.equals(third); System.out.println("Strings first and third are equal: " + result2); ) )
Výkon
Reťazce prvý a druhý sú si rovné: true Reťazce prvý a tretí sú si rovné: false
Vo vyššie uvedenom príklade sme vytvorili 3 reťazce pomenované prvý, druhý a tretí. Tu používame equal()
metódu na kontrolu, či sa jeden reťazec rovná druhému.
Tieto equals()
kontroly metóda obsah reťazca pri ich porovnávanie. Ak sa chcete dozvedieť viac, navštívte stránku Java String equals ().
Poznámka : Môžeme tiež porovnať dva reťazce pomocou ==
operátora v Jave. Tento prístup je však iný ako equals()
metóda. Ak sa chcete dozvedieť viac, navštívte stránku Java String == vs equals ().
Metódy reťazca Java
Okrem vyššie spomenutých existujú v Jave rôzne reťazcové metódy. Tu sú niektoré z týchto metód:
Metódy | Popis |
---|---|
podreťazec () | vráti podreťazec reťazca |
nahradiť () | nahradí zadaný starý znak zadaným novým znakom |
charAt () | vráti znak prítomný na zadanom mieste |
getBytes () | prevádza reťazec na pole bajtov |
indexOf () | vráti pozíciu zadaného znaku v reťazci |
porovnať s() | porovnáva dva reťazce v poradí slovníkov |
trim () | odstráni všetky predné a koncové biele medzery |
formát () | vráti formátovaný reťazec |
split () | rozbije reťazec na pole reťazcov |
toLowerCase () | prevádza reťazec na malé písmená |
toUpperCase () | prevádza reťazec na veľké písmená |
hodnota() | vráti reťazcovú reprezentáciu zadaného argumentu |
toCharArray () | prevádza reťazec na char pole |
Úniková postava v reťazcoch Java
Únikový znak sa používa na únik z niektorých znakov prítomných vo vnútri reťazca.
Predpokladajme, že do reťazca musíme zahrnúť dvojité úvodzovky.
// include double quote String example = "This is the "String" class";
Pretože reťazce sú vyjadrené dvojitými úvodzovkami , bude kompilátor považovať reťazec „This is the“ za reťazec. Vyššie uvedený kód preto spôsobí chybu.
Na vyriešenie tohto problému používame v jazyku Java znak escape . Napríklad,
// use the escape character String example = "This is the "String " class.";
Teraz únikové znaky povedzte kompilátoru, aby unikol dvojitým úvodzovkám a prečítal si celý text.
Reťazce Java sú nemenné
V Jave sú reťazce nemenné . To znamená, že akonáhle vytvoríme reťazec, nemôžeme ho zmeniť.
Ak to chcete hlbšie pochopiť, zvážte príklad:
// create a string String example = "Hello! ";
Tu sme vytvorili premennú reťazca s názvom príklad. Premenná obsahuje reťazec „Hello!“.
Teraz predpokladajme, že chceme zmeniť reťazec.
// add another string "World" // to the previous tring example example = example.concat(" World");
Tu používame concat()
metódu na pridanie ďalšieho reťazca World k predchádzajúcemu reťazcu.
It looks like we are able to change the value of the previous string. However, this is not true
.
Let's see what has happened here,
- JVM takes the first string "Hello! "
- creates a new string by adding "World" to the first string
- assign the new string "Hello! World" to the example variable
- the first string "Hello! " remains unchanged
Creating strings using the new keyword
So far we have created strings like primitive types in Java.
Since strings in Java are objects, we can create strings using the new
keyword as well. For example,
// create a string using the new keyword String name = new String("Java String");
In the above example, we have created a string name using the new
keyword.
Here, when we create a string object, the String()
constructor is invoked. To learn more about constructor, visit Java Constructor.
Note: The String
class provides various other constructors to create strings. To learn more, visit Java String (official Java documentation).
Example: Create Java Strings using the new keyword
class Main ( public static void main(String() args) ( // create a string using new String name = new String("Java String"); System.out.println(name); // print Java String ) )
Create String using literals vs new keyword
Now that we know how strings are created using string literals and the new
keyword, let's see what is the major difference between them.
In Java, the JVM maintains a string pool to store all of its strings inside the memory. The string pool helps in reusing the strings.
While creating strings using string literals, the value of the string is directly provided. Hence, the compiler first checks the string pool to see if the string already exists.
- Ak reťazec už existuje , nový reťazec sa nevytvorí. Namiesto toho nový odkaz ukazuje na existujúci reťazec.
- Ak reťazec neexistuje , vytvorí sa nový reťazec.
Pri vytváraní reťazcov pomocou nového kľúčového slova však nie je priamo poskytnutá hodnota reťazca. Preto sa nový reťazec vytvára stále.