Selles õpetuses õpime näidete abil Java Stringsi, nende loomise ja Stringi erinevaid meetodeid.
Javas on string tähemärkide jada. Näiteks "tere" on string, mis sisaldab tähemärkide jada "h", "e", "l", "l" ja "o".
Java stringis kasutame topelt jutumärke . Näiteks,
// create a string String type = "Java programming";
Siin oleme loonud stringimuutuja nimega tüüp. Muutuja lähtestatakse stringiga Java Programming
.
Märkus : Stringid Java ei ole primitiivne tüüpi (nagu int
, char
jne). Selle asemel on kõik stringid eelnevalt määratletud klassi objektid String
.
Ja kõik stringimuutujad on String
klassi eksemplarid .
Näide: looge string Java-s
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 ) )
Ülaltoodud näites oleme loonud kolm stringi nimega esimene, teine ja kolmas. Siin loome otseselt stringe nagu primitiivsed tüübid.
Siiski on Java-stringide loomiseks veel üks viis (kasutades new
märksõna). Selle kohta õpime hiljem selles õpetuses.
Java stringide toimingud
Java string pakub erinevaid meetodeid stringide erinevate toimingute tegemiseks. Uurime mõnda levinumat stringioperatsiooni.
1. Saage stringi pikkus
Stringi pikkuse leidmiseks kasutame length()
Stringi meetodit. Näiteks,
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äljund
String: Tere! Maailma pikkus: 12
Ülaltoodud näites length()
arvutab meetod stringi märkide koguarvu ja tagastab selle. Lisateabe saamiseks külastage Java Stringi pikkus ().
2. Ühendage kaks keelt
Selle concat()
meetodi abil saame Java-s ühendada kaks stringi . Näiteks,
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äljund
Esimene string: Java Teine string: programmeerimine Liitunud string: Java programmeerimine
Ülaltoodud näites oleme loonud kaks stringi nimega esimene ja teine. Pange tähele avaldust,
String joinedString = first.concat(second);
Siin ühendame concat()
meetodi esimese ja teise ning määrame selle ühendatudStringi muutujale.
Samuti võime +
Java-operaatori abil liituda kahe stringiga . Lisateabe saamiseks külastage Java String concat ().
3. Võrrelge kahte stringi
Javas saame equals()
meetodi abil võrrelda kahte stringi . Näiteks,
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äljund
Esimesed ja kolmandad stringid on võrdsed: tõene Esimesed ja kolmandad stringid on võrdsed: valed
Ülaltoodud näites oleme loonud 3 stringi nimega esimene, teine ja kolmas. Siin equal()
kontrollime meetodit, kas üks string on teisega võrdne.
equals()
Meetod kontrolli sisu stringid samas võrrelda neid. Lisateabe saamiseks külastage Java String equals ().
Märkus==
. Java-operaatori abil saame võrrelda ka kahte stringi . Kuid see lähenemine erineb equals()
meetodist. Lisateabe saamiseks külastage Java String == vs võrdub ().
Java stringi meetodid
Lisaks ülalnimetatutele on Java-s ka mitmesuguseid stringimeetodeid. Siin on mõned neist meetoditest:
Meetodid | Kirjeldus |
---|---|
alamstring () | tagastab stringi alamstringi |
asenda () | asendab määratud vana märgi uue uue märgiga |
charAt () | tagastab määratud asukohas oleva märgi |
getBytes () | teisendab stringi baitide massiiviks |
indeks() | tagastab stringi määratud märgi positsiooni |
võrdlema() | võrdleb kahte stringi sõnastiku järjekorras |
kärpima () | eemaldab kõik eesmised ja järgnevad tühikud |
vorming () | tagastab vormindatud stringi |
jagama () | lõhub stringi stringide massiiviks |
toLowerCase () | teisendab stringi väiketäheks |
toUpperCase () | teisendab stringi suurtäheks |
valueOf () | tagastab määratud argumendi stringi esituse |
toCharArray () | teisendab stringi char massiiviks |
Escape-märk Java-stringides
Põgenemismärki kasutatakse põimimiseks mõnest stringi sees olevast tähemärgist.
Oletame, et peame stringi sisse lisama topelt jutumärgid.
// include double quote String example = "This is the "String" class";
Since strings are represented by double quotes, the compiler will treat "This is the " as the string. Hence, the above code will cause an error.
To solve this issue, we use the escape character in Java. For example,
// use the escape character String example = "This is the "String " class.";
Now escape characters tell the compiler to escape double quotes and read the whole text.
Java Strings are Immutable
In Java, strings are immutable. This means, once we create a string, we cannot change that string.
To understand it more deeply, consider an example:
// create a string String example = "Hello! ";
Here, we have created a string variable named example. The variable holds the string "Hello! ".
Now suppose we want to change the string.
// add another string "World" // to the previous tring example example = example.concat(" World");
Here, we are using the concat()
method to add another string World to the previous string.
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.
- Kui string on juba olemas , siis uut stringi ei looda. Selle asemel osutab uus viide olemasolevale stringile.
- Kui stringi pole , luuakse uus string.
Kuid luues stringid, kasutades uut märksõna , väärtus string ei ole otseselt sätestatud. Seega luuakse uus string kogu aeg.