Tässä opetusohjelmassa opitaan Java-kielistä, niiden luomisesta ja erilaisista merkkijonomenetelmistä esimerkkien avulla.
Java-kielessä merkkijono on merkkijono. Esimerkiksi "hei" on merkkijono, joka sisältää merkkisarjan "h", "e", "l", "l" ja "o".
Käytämme kaksoislainauksia merkkijonon esittämiseen Javassa. Esimerkiksi,
// create a string String type = "Java programming";
Tässä olemme luoneet merkkijonomuuttujan nimeltä tyyppi. Muuttuja alustetaan merkkijonolla Java Programming
.
Huom : Strings Java eivät alkukantaiset tyypit (kuten int
, char
jne). Sen sijaan kaikki merkkijonot ovat ennalta määritetyn luokan objekteja String
.
Ja kaikki merkkijonomuuttujat ovat String
luokan esiintymiä .
Esimerkki: Luo merkkijono Java-kielellä
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 ) )
Yllä olevassa esimerkissä olemme luoneet kolme merkkijonoa nimeltä ensimmäinen, toinen ja kolmas. Täällä luomme suoraan merkkijonoja, kuten primitiivisiä tyyppejä.
On kuitenkin olemassa toinen tapa luoda Java-merkkijonoja (käyttämällä new
avainsanaa). Opimme siitä myöhemmin tässä opetusohjelmassa.
Java-merkkijonotoiminnot
Java-merkkijono tarjoaa erilaisia tapoja suorittaa erilaisia toimintoja merkkijonoille. Tarkastelemme joitain yleisesti käytettyjä merkkijono-operaatioita.
1. Hanki merkkijonon pituus
Merkkijonon pituuden löytämiseksi käytämme length()
merkkijonomenetelmää. Esimerkiksi,
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); ) )
Tuotos
Merkkijono: Hei! Maailman pituus: 12
Edellä olevassa esimerkissä length()
menetelmä laskee merkkijonon merkkien kokonaismäärän ja palauttaa sen. Lisätietoja on Java String length () -sivulla.
2. Liitä kaksi merkkijonoa
Voimme liittää kaksi merkkijonoa Javassa concat()
menetelmällä. Esimerkiksi,
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); ) )
Tuotos
Ensimmäinen merkkijono: Java Toinen merkkijono: Ohjelmointi Yhdistetty merkkijono: Java-ohjelmointi
Yllä olevassa esimerkissä olemme luoneet kaksi merkkijonoa nimeltä ensimmäinen ja toinen. Huomaa lausunto,
String joinedString = first.concat(second);
Tässä concat()
menetelmä yhdistetään ensimmäiseen ja toiseen ja osoitetaan se joinString-muuttujaan.
Voimme myös liittää kaksi merkkijonoa +
Java-operaattorin avulla. Jos haluat lisätietoja, käy Java String concatissa ().
3. Vertaa kahta merkkijonoa
Java-tilassa voimme verrata kahta merkkijonoa equals()
menetelmän avulla. Esimerkiksi,
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); ) )
Tuotos
Ensimmäiset ja toiset merkkijonot ovat samat: tosi Merkkijonot ensimmäinen ja kolmas ovat samat: väärät
Yllä olevassa esimerkissä olemme luoneet 3 merkkijonoa nimeltä ensimmäinen, toinen ja kolmas. Tässä käytämme equal()
menetelmää tarkistamaan, onko yksi merkkijono yhtä suuri kuin toinen.
equals()
Menetelmä tarkistaa sisällön jouset verratessaan niitä. Lisätietoja on osoitteessa Java String equals ().
Huomaa : Voimme myös verrata kahta merkkijonoa ==
Java-operaattorin avulla. Tämä lähestymistapa on kuitenkin erilainen kuin equals()
menetelmä. Jos haluat lisätietoja, käy Java String == vs yhtä kuin ().
Java-merkkijonon menetelmät
Edellä mainittujen lisäksi Java-ohjelmassa on useita merkkijonomenetelmiä. Tässä on joitain näistä menetelmistä:
Menetelmät | Kuvaus |
---|---|
substing () | palauttaa merkkijonon alaosan |
korvata() | korvaa määritetyn vanhan merkin määritetyllä uudella merkillä |
charAt () | palauttaa määritetyssä paikassa olevan merkin |
getBytes () | muuntaa merkkijonon tavujoukoksi |
sisällysluettelo() | palauttaa määritetyn merkin sijainnin merkkijonossa |
vertaa() | vertaa kahta merkkijonoa sanakirjajärjestyksessä |
trimmata() | poistaa kaikki etu- ja takareitit |
muoto() | palauttaa alustetun merkkijonon |
jakaa() | hajottaa merkkijonon joukoksi merkkijonoja |
toLowerCase () | muuntaa merkkijonon pieniksi |
toUpperCase () | muuntaa merkkijonon isoksi |
jonkin arvo() | palauttaa määritetyn argumentin merkkijonon |
toCharArray () | muuntaa merkkijonon char taulukoksi |
Escape-merkki Java-kielissä
Pakomerkkiä käytetään paeta joistakin merkkijonossa olevista merkeistä.
Oletetaan, että meidän on sisällytettävä merkkijonoon kaksoislainausmerkit.
// include double quote String example = "This is the "String" class";
Koska merkkijonot on esitetty lainausmerkeissä , kääntäjä käsittelee merkkijonona "Tämä on". Siksi yllä oleva koodi aiheuttaa virheen.
Tämän ongelman ratkaisemiseksi käytämme Java-pakomerkkiä. Esimerkiksi,
// use the escape character String example = "This is the "String " class.";
Nyt pakomerkit käskevät kääntäjää välttämään kaksoislainausmerkit ja lukemaan koko tekstin.
Java-kielet ovat muuttumattomia
Javassa merkkijonot ovat muuttumattomia . Tämä tarkoittaa, että kun luot merkkijonon, emme voi muuttaa merkkijonoa.
Harkitse esimerkkiä ymmärtääksesi sen syvemmin.
// create a string String example = "Hello! ";
Tässä olemme luoneet merkkijonomuuttujan nimeltä esimerkki. Muuttuja pitää merkkijonoa "Hello!".
Oletetaan nyt, että haluamme vaihtaa merkkijonoa.
// add another string "World" // to the previous tring example example = example.concat(" World");
Tässä käytämme concat()
menetelmää uuden merkkijonon lisäämiseen edelliseen merkkijonoon.
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.
- Jos merkkijono on jo olemassa , uutta merkkijonoa ei luoda. Sen sijaan uusi viite viittaa olemassa olevaan merkkijonoon.
- Jos merkkijonoa ei ole , uusi merkkijono luodaan.
Vaikka merkkijonoja luodaan uudella avainsanalla , merkkijonon arvoa ei kuitenkaan anneta suoraan. Siksi uusi merkkijono luodaan koko ajan.