Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java virknēm, to izveidi un dažādām virkņu metodēm.
Java valodā virkne ir rakstzīmju secība. Piemēram, "sveiki" ir virkne, kurā ir rakstzīmju secība "h", "e", "l", "l" un "o".
Mēs izmantojam dubultās pēdiņas, lai attēlotu virkni Java. Piemēram,
// create a string String type = "Java programming";
Šeit mēs esam izveidojuši virknes mainīgo ar nosaukumu tips. Mainīgais tiek inicializēts ar virkni Java Programming
.
Piezīme : Stīgas Java nav primitīvas veidi (piemēram int
, char
utt.) Tā vietā visas virknes ir iepriekš definētas klases objekti String
.
Visi virkņu mainīgie ir String
klases gadījumi.
Piemērs: izveidojiet virkni 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 ) )
Iepriekš minētajā piemērā mēs esam izveidojuši trīs virknes, kuru nosaukums ir pirmais, otrais un trešais. Šeit mēs tieši veidojam virknes, piemēram, primitīvus tipus.
Tomēr ir vēl viens veids, kā izveidot Java virknes (izmantojot new
atslēgvārdu). Par to mēs uzzināsim vēlāk šajā apmācībā.
Java virkņu operācijas
Java virknes nodrošina dažādas metodes, kā veikt dažādas operācijas ar virknēm. Mēs izpētīsim dažas no visbiežāk izmantotajām virkņu operācijām.
1. Iegūstiet virknes garumu
Lai atrastu virknes garumu, mēs izmantojam virknes length()
metodi. Piemēram,
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); ) )
Rezultāts
Stīga: Sveiki! Pasaules garums: 12
Iepriekš minētajā piemērā length()
metode aprēķina virknes kopējo rakstzīmju skaitu un atgriež to. Lai uzzinātu vairāk, apmeklējiet Java virknes garumu ().
2. Pievienojieties divām stīgām
Izmantojot concat()
metodi, mēs varam savienot divas virknes Java . Piemēram,
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); ) )
Rezultāts
Pirmā virkne: Java Otrā virkne: Programmēšana Pievienotā virkne: Java programmēšana
Iepriekš minētajā piemērā mēs esam izveidojuši divas virknes, kuru nosaukums ir pirmais un otrais. Ievērojiet paziņojumu,
String joinedString = first.concat(second);
Šeit mēs concat()
metodi pievienojamies pirmajam un otrajam un piešķiram mainīgajam joinString.
Mēs varam arī savienot divas virknes, izmantojot +
Java operatoru. Lai uzzinātu vairāk, apmeklējiet Java String concat ().
3. Salīdziniet divas virknes
Java valodā mēs varam salīdzināt divas virknes, izmantojot equals()
metodi. Piemēram,
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); ) )
Rezultāts
Pirmās un otrās virknes ir vienādas: patiesās pirmās un trešās virknes ir vienādas: nepatiesas
Iepriekš minētajā piemērā mēs esam izveidojuši 3 virknes, kuru nosaukums ir pirmais, otrais un trešais. Šeit mēs izmantojam equal()
metodi, lai pārbaudītu, vai viena virkne ir vienāda ar otru.
Par equals()
metode pārbaudes saturs stīgas, bet, salīdzinot tos. Lai uzzinātu vairāk, apmeklējiet Java String equals ().
Piezīme : Mēs varam arī salīdzināt divas virknes, izmantojot ==
operētājsistēmu Java. Tomēr šī pieeja atšķiras no equals()
metodes. Lai uzzinātu vairāk, apmeklējiet Java virkni == vs vienāds ().
Java virknes metodes
Līdztekus iepriekš minētajiem, Java ir dažādas virkņu metodes. Šeit ir dažas no šīm metodēm:
Metodes | Apraksts |
---|---|
apakšvirkne () | atgriež virknes apakšvirkni |
aizvietot() | aizstāj norādīto veco rakstzīmi ar norādīto jauno rakstzīmi |
charAt () | atgriež rakstzīmi, kas atrodas norādītajā vietā |
getBytes () | pārveido virkni baitu masīvā |
indexOf () | atgriež norādītās rakstzīmes pozīciju virknē |
Salīdzinot ar() | salīdzina divas virknes vārdnīcas secībā |
apdare () | noņem visas vadošās un aizmugurējās atstarpes |
formāts () | atgriež formatētu virkni |
sadalīt () | sadala virkni virkņu masīvā |
toLowerCase () | pārveido virkni par mazajiem burtiem |
toUpperCase () | pārveido virkni lielajiem burtiem |
valueOf () | atgriež norādītā argumenta virknes attēlojumu |
toCharArray () | pārveido virkni char masīvā |
Escape raksturs Java virknēs
Bēgšanas raksturs tiek izmantots, lai izvairītos no dažām rakstzīmēm, kas atrodas virknes iekšienē.
Pieņemsim, ka virknes iekšpusē mums jāiekļauj dubultās pēdiņas.
// include double quote String example = "This is the "String" class";
Tā kā virknes ir attēlotas ar pēdiņām , kompilators par virkni uzskatīs “Šis ir”. Tādējādi iepriekš minētais kods radīs kļūdu.
Lai atrisinātu šo problēmu, mēs Java izmantojam evakuācijas rakstzīmi . Piemēram,
// use the escape character String example = "This is the "String " class.";
Tagad bēgšanas rakstzīmes liek sastādītājam izvairīties no divkāršām pēdiņām un izlasīt visu tekstu.
Java virknes ir nemainīgas
Java valodā virknes ir nemainīgas . Tas nozīmē, ka, izveidojot virkni, mēs to vairs nevaram mainīt.
Lai to dziļāk saprastu, apsveriet piemēru:
// create a string String example = "Hello! ";
Šeit mēs esam izveidojuši virknes mainīgo ar nosaukumu. Mainīgajam pieder virkne "Labdien!"
Tagad pieņemsim, ka mēs vēlamies mainīt virkni.
// add another string "World" // to the previous tring example example = example.concat(" World");
Šeit mēs izmantojam concat()
metodi, lai iepriekšējai virknei pievienotu citu virkni World.
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.
- Ja virkne jau pastāv , jaunā virkne netiek izveidota. Tā vietā jaunā atsauce norāda uz esošo virkni.
- Ja virkne nepastāv , tiek izveidota jaunā virkne.
Tomēr, veidojot virknes, izmantojot jauno atslēgvārdu , virknes vērtība nav tieši norādīta. Tādējādi jaunā virkne tiek veidota visu laiku.