Řetězec Java (s příklady)

V tomto výukovém programu se na příkladech seznámíme s Java Strings, jejich tvorbou a různými metodami String.

V Javě je řetězec posloupností znaků. Například „ahoj“ je řetězec obsahující posloupnost znaků „h“, „e“, „l“, „l“ a „o“.

K vyjádření řetězce v Javě používáme uvozovky . Například,

 // create a string String type = "Java programming";

Zde jsme vytvořili řetězcovou proměnnou s názvem typ. Proměnná je inicializována řetězcem Java Programming.

Poznámka : Řetězce v Javě nejsou primitivní typy (podobně int, charatd.) Místo toho jsou všechny řetězce objekty předdefinované třídy s názvem String.

A všechny řetězcové proměnné jsou instancemi Stringtřídy.

Příklad: Vytvořte řetězec v Javě

 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 ) )

Ve výše uvedeném příkladu jsme vytvořili tři řetězce pojmenované první, druhý a třetí. Tady přímo vytváříme řetězce jako primitivní typy.

Existuje však jiný způsob vytváření řetězců Java (pomocí newklíčového slova). O tom se dozvíme dále v tomto tutoriálu.

Řetězcové operace Java

Java String poskytuje různé metody pro provádění různých operací s řetězci. Podíváme se na některé z běžně používaných řetězcových operací.

1. Získejte délku řetězce

Chcete-li zjistit délku řetězce, použijeme length()metodu řetězce. Napří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ýstup

Řetězec: Ahoj! Délka světa: 12

Ve výše uvedeném příkladu length()metoda vypočítá celkový počet znaků v řetězci a vrátí jej. Další informace najdete na webu Java String length ().

2. Spojte dva řetězce

Můžeme spojit dva řetězce v Javě pomocí této concat()metody. Napří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ýstup

 První řetězec: Java Druhý řetězec: Programování Připojený řetězec: Programování Java

Ve výše uvedeném příkladu jsme vytvořili dva řetězce pojmenované první a druhý. Všimněte si prohlášení,

 String joinedString = first.concat(second);

Zde se concat()metoda spojí první a druhá a přiřadí ji proměnné joinString.

Můžeme také spojit dva řetězce pomocí +operátoru v Javě. Další informace najdete na stránce Java String concat ().

3. Porovnejte dva řetězce

V Javě můžeme pomocí equals()metody provést srovnání mezi dvěma řetězci . Napří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ýstup

 Řetězce první a druhý jsou stejné: true Řetězce první a třetí jsou stejné: false

Ve výše uvedeném příkladu jsme vytvořili 3 řetězce pojmenované první, druhý a třetí. Zde používáme equal()metodu ke kontrole, zda se jeden řetězec rovná druhému.

Tyto equals()kontroly metoda obsah řetězce při jejich porovnávání. Další informace najdete na stránce Java String equals ().

Poznámka : Můžeme také porovnat dva řetězce pomocí ==operátoru v Javě. Tento přístup se však liší od equals()metody. Další informace najdete na stránce Java String == vs equals ().

Metody Java String

Kromě výše zmíněných existují v Javě různé řetězcové metody. Zde jsou některé z těchto metod:

Metody Popis
podřetězec () vrací podřetězec řetězce
nahradit() nahradí zadaný starý znak zadaným novým znakem
charAt () vrací znak přítomný v zadaném umístění
getBytes () převede řetězec na pole bajtů
indexOf () vrací pozici zadaného znaku v řetězci
porovnat s() porovnává dva řetězce v pořadí slovníku
trim () odstraní všechny přední a koncové mezery
formát() vrací formátovaný řetězec
rozdělit() rozdělí řetězec na pole řetězců
toLowerCase () převede řetězec na malá písmena
toUpperCase () převede řetězec na velká písmena
hodnota() vrací řetězcové vyjádření zadaného argumentu
toCharArray () převede řetězec na charpole

Úniková postava v řetězcích Java

Únikový znak se používá k úniku z některých znaků přítomných uvnitř řetězce.

Předpokládejme, že do řetězce musíme zahrnout uvozovky.

 // include double quote String example = "This is the "String" class";

Vzhledem k tomu, že řetězce jsou reprezentovány uvozovkami , bude kompilátor považovat řetězec „This is the“ za řetězec. Výše uvedený kód proto způsobí chybu.

K vyřešení tohoto problému používáme v jazyce Java znak escape . Například,

 // use the escape character String example = "This is the "String " class.";

Nyní únikové znaky řeknou kompilátoru, aby unikl uvozovkám a přečetl celý text.

Řetězce Java jsou nezměnitelné

V Javě jsou řetězce neměnné . To znamená, že jakmile vytvoříme řetězec, nemůžeme jej změnit.

Abyste tomu porozuměli hlouběji, zvažte příklad:

 // create a string String example = "Hello! ";

Zde jsme vytvořili řetězcovou proměnnou s názvem příklad. Proměnná obsahuje řetězec „Hello!“.

Nyní předpokládejme, že chceme změnit řetězec.

 // add another string "World" // to the previous tring example example = example.concat(" World");

Zde používáme concat()metodu k přidání dalšího řetězce World do předchozího řetězce.

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,

  1. JVM takes the first string "Hello! "
  2. creates a new string by adding "World" to the first string
  3. assign the new string "Hello! World" to the example variable
  4. 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.

  • Pokud řetězec již existuje , nový řetězec se nevytvoří. Místo toho nový odkaz ukazuje na existující řetězec.
  • Pokud řetězec neexistuje , vytvoří se nový řetězec.

Avšak při vytváření řetězce pomocí nové klíčové slovo , není přímo za předpokladu, že hodnota řetězce. Proto je nový řetězec vytvářen neustále.

Zajímavé články...