În acest tutorial, vom învăța despre șirurile Java, cum să le creăm și diverse metode de șir cu ajutorul exemplelor.
În Java, un șir este o secvență de caractere. De exemplu, „salut” este un șir care conține o secvență de caractere „h”, „e”, „l”, „l” și „o”.
Folosim ghilimele duble pentru a reprezenta un șir în Java. De exemplu,
// create a string String type = "Java programming";
Aici, am creat o variabilă șir denumită tip. Variabila este inițializată cu șirul Java Programming
.
Notă : siruri de caractere în Java nu sunt tipuri primitive (cum ar fi int
, char
etc). În schimb, toate șirurile sunt obiecte ale unei clase predefinite numite String
.
Și, toate variabilele șir sunt instanțe ale String
clasei.
Exemplu: Creați un șir în Java
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 ) )
În exemplul de mai sus, am creat trei șiruri numite prima, a doua și a treia. Aici, creăm direct șiruri precum tipuri primitive.
Cu toate acestea, există un alt mod de a crea șiruri Java (folosind new
cuvântul cheie). Vom afla despre asta mai târziu în acest tutorial.
Operații Java String
Java String oferă diverse metode pentru a efectua diferite operații pe șiruri. Vom analiza unele dintre operațiile de șir utilizate în mod obișnuit.
1. Obțineți lungimea unui șir
Pentru a găsi lungimea unui șir, folosim length()
metoda Șirului. De exemplu,
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); ) )
Ieșire
Șir: Bună ziua! Lungimea lumii: 12
În exemplul de mai sus, length()
metoda calculează numărul total de caractere din șir și îl returnează. Pentru a afla mai multe, accesați Java String length ().
2. Alăturați două șiruri
Putem uni două șiruri în Java folosind concat()
metoda. De exemplu,
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); ) )
Ieșire
Primul șir: Java Al doilea șir: Programare Șir alăturat: Programare Java
În exemplul de mai sus, am creat două șiruri numite prima și a doua. Observați declarația,
String joinedString = first.concat(second);
Aici, concat()
metoda unim prima și a doua și o atribuim variabilei joinString.
De asemenea, putem uni două șiruri folosind +
operatorul în Java. Pentru a afla mai multe, vizitați Java String concat ().
3. Comparați două șiruri
În Java, putem face comparații între două șiruri folosind equals()
metoda. De exemplu,
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); ) )
Ieșire
Șirurile prima și a doua sunt egale: adevărate Șirurile prima și a treia sunt egale: false
În exemplul de mai sus, am creat 3 șiruri numite prima, a doua și a treia. Aici, folosim equal()
metoda pentru a verifica dacă un șir este egal cu altul.
În equals()
metoda verifică conținutul siruri de caractere în timp ce le compara. Pentru a afla mai multe, accesați Java String equals ().
Notă : Putem compara și două șiruri folosind ==
operatorul în Java. Cu toate acestea, această abordare este diferită de equals()
metodă. Pentru a afla mai multe, accesați Java String == vs equals ().
Metode de șir Java
Pe lângă cele menționate mai sus, există diverse metode de șiruri prezente în Java. Iată câteva dintre aceste metode:
Metode | Descriere |
---|---|
substring () | returnează șirul de caractere al șirului |
a inlocui() | înlocuiește caracterul vechi specificat cu caracterul nou specificat |
charAt () | returnează caracterul prezent în locația specificată |
getBytes () | convertește șirul într-o matrice de octeți |
Index de() | returnează poziția caracterului specificat în șir |
compara cu() | compară două șiruri în ordinea dicționarului |
tunde() | îndepărtează orice spațiu alb principal și final |
format() | returnează un șir formatat |
Despică() | rupe șirul într-o serie de șiruri |
toLowerCase () | convertește șirul în minuscule |
toUpperCase () | convertește șirul în majuscule |
valoarea() | returnează reprezentarea șir a argumentului specificat |
toCharArray () | convertește șirul într-o char matrice |
Caracter de evadare în șiruri Java
Caracterul de evadare este folosit pentru a scăpa de unele dintre personajele prezente în interiorul unui șir.
Să presupunem că trebuie să includem ghilimele duble în interiorul unui șir.
// include double quote String example = "This is the "String" class";
Deoarece șirurile sunt reprezentate prin ghilimele duble , compilatorul va trata „Acesta este” ca șir. Prin urmare, codul de mai sus va provoca o eroare.
Pentru a rezolva această problemă, folosim caracterul escape în Java. De exemplu,
// use the escape character String example = "This is the "String " class.";
Acum, caracterele de evadare îi spun compilatorului să scape de ghilimele duble și să citească întregul text.
Șirurile Java sunt imuabile
În Java, șirurile sunt imuabile . Aceasta înseamnă că, odată ce creăm un șir, nu putem schimba acel șir.
Pentru a o înțelege mai profund, luați în considerare un exemplu:
// create a string String example = "Hello! ";
Aici, am creat o variabilă șir numită exemplu. Variabila conține șirul „Bună ziua!”.
Acum, să presupunem că vrem să schimbăm șirul.
// add another string "World" // to the previous tring example example = example.concat(" World");
Aici, folosim concat()
metoda pentru a adăuga un alt șir Lumea la șirul anterior.
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.
- Dacă șirul există deja , noul șir nu este creat. În schimb, noua referință indică șirul existent.
- Dacă șirul nu există , este creat noul șir.
Cu toate acestea, în timp ce creați șiruri folosind noul cuvânt cheie , valoarea șirului nu este furnizată direct. Prin urmare, noul șir este creat tot timpul.