Į Java , eilutė iš esmės yra objektas, vaizduojantis char reikšmių seką. An masyvas simbolių veikia taip pat kaip Java eilutė. Pavyzdžiui:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
yra toks pat kaip:
String s='javatpoint';
Java eilutė klasė suteikia daug metodų, leidžiančių atlikti operacijas su eilutėmis, pvz., palyginimas (), concat (), lygus (), split (), ilgis (), pakeisti (), palygintiTo (), intern (), substring () ir kt.
Java.lang.String klasė įgyvendina Serializuojama , Palyginamas ir CharSequence sąsajos .
CharSequence sąsaja
CharSequence sąsaja naudojama simbolių sekai pavaizduoti. styga, StringBuffer ir StringBuilder klasės tai įgyvendina. Tai reiškia, kad galime sukurti „Java“ eilutes naudodami šias tris klases.
„Java“ eilutė yra nekintanti, o tai reiškia, kad jos pakeisti negalima. Kai pakeičiame bet kurią eilutę, sukuriamas naujas egzempliorius. Keičiamoms eilutėms galite naudoti 'StringBuffer' ir 'StringBuilder' klases.
Nekintamą eilutę aptarsime vėliau. Pirmiausia išsiaiškinkime, kas yra „Java“ eilutė ir kaip sukurti „String“ objektą.
Kas yra „Java“ eilutė?
Paprastai eilutė yra simbolių seka. Tačiau Java programoje eilutė yra objektas, vaizduojantis simbolių seką. Klasė java.lang.String naudojama eilutės objektui sukurti.
Kaip sukurti stygos objektą?
Yra du būdai, kaip sukurti eilutės objektą:
- Pagal eilutę pažodžiui
- Pagal naują raktinį žodį
1) Styginiai Literalas
„Java String literal“ sukurta naudojant dvigubas kabutes. Pavyzdžiui:
String s='welcome';
Kiekvieną kartą, kai sukuriate eilutės literalą, JVM pirmiausia patikrina „stygų konstantos telkinį“. Jei eilutė jau yra telkinyje, pateikiama nuoroda į sukauptą egzempliorių. Jei eilutės telkinyje nėra, sukuriamas naujas eilutės egzempliorius ir įtraukiamas į telkinį. Pavyzdžiui:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
Aukščiau pateiktame pavyzdyje bus sukurtas tik vienas objektas. Pirma, JVM neras jokio eilutės objekto su reikšme „Sveiki“ eilučių pastoviame telkinyje, todėl sukurs naują objektą. Po to jis telkinyje suras eilutę su reikšme „Sveiki“, nesukurs naujo objekto, bet grąžins nuorodą į tą patį egzempliorių.
Pastaba: Styginių objektai saugomi specialioje atminties srityje, vadinamoje „stygų konstanta“.
Kodėl Java naudoja sąvoką String literal?
Kad „Java“ būtų efektyvesnė atmintis (nes nekuriami nauji objektai, jei jis jau yra eilučių pastoviame telkinyje).
2) Pagal naują raktinį žodį
String s=new String('Welcome');//creates two objects and one reference variable
Tokiu atveju, JVM sukurs naują eilutės objektą įprastoje (ne telkinio) krūvos atmintyje, o pažodinis žodis „Sveiki“ bus patalpintas į eilučių pastovų telkinį. Kintamasis s nurodys objektą krūvoje (ne telkinyje).
java vizualizatorius
Java eilutės pavyzdys
StringExample.java
public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }}Išbandykite dabar
Išvestis:
java strings example
Aukščiau pateiktas kodas konvertuoja a char masyvas į a Styga objektas. Ir rodo String objektus s1, s2 , ir s3 naudojant konsolę println () metodas.
Java stygų klasės metodai
Klasė java.lang.String suteikia daug naudingų metodų, leidžiančių atlikti operacijas su simbolių reikšmių seka.
Nr. | Metodas | apibūdinimas |
---|---|---|
1 | char charAt(int index) | Jis grąžina konkretaus indekso char reikšmę |
2 | int ilgis () | Jis grąžina eilutės ilgį |
3 | statinis eilutės formatas (eilutės formatas, objekto... args) | Jis grąžina suformatuotą eilutę. |
4 | statinis eilutės formatas (lokalė l, eilutės formatas, objektas... args) | Jis grąžina suformatuotą eilutę su nurodyta lokale. |
5 | Eilutės poeilutė (int beginIndex) | Jis grąžina tam tikro pradžios indekso poeilelę. |
6 | Eilutės poeilutė (int beginIndex, int endIndex) | Jis grąžina tam tikro pradžios ir pabaigos indekso eilutę. |
7 | loginis yra (CharSequence s) | Jis grąžina teisingą arba klaidingą po to, kai suderina char reikšmės seką. |
8 | statinis eilutės sujungimas (CharSequence skyriklis, CharSequence... elementai) | Tai grąžina sujungtą eilutę. |
9 | statinis eilutės sujungimas (CharSequence skyriklis, kartojami elementai) | Tai grąžina sujungtą eilutę. |
10 | loginis lygus (objektas kitas) | Jis patikrina eilutės lygybę su nurodytu objektu. |
vienuolika | loginis yra tuščias() | Jis patikrina, ar eilutė tuščia. |
12 | String concat (String str) | Jis sujungia nurodytą eilutę. |
13 | Eilutės pakeitimas (senas simbolis, naujas simbolis) | Jis pakeičia visus nurodytos simbolio reikšmės atvejus. |
14 | Eilutės pakeitimas (sena „CharSequence“, nauja) | Jis pakeičia visus nurodytos CharSequence atvejus. |
penkiolika | statinė eilutė lygi IgnoreCase (Eilutė kita) | Tai lygina kitą eilutę. Ji netikrina atvejo. |
16 | Eilutės[] padalijimas (eilutės reguliarusis reiškinys) | Jis grąžina suskaidytą eilutę, atitinkančią reguliarųjį reiškinį. |
17 | String[] padalijimas (eilutės reguliarusis reiškinys, tarpinis apribojimas) | Jis grąžina suskaidytą eilutę, atitinkančią reguliarųjį reiškinį ir limitą. |
18 | Styginių praktikantas () | Jis grąžina įterptą eilutę. |
19 | int indexOf(int ch) | Jis grąžina nurodytą simbolio vertės indeksą. |
dvidešimt | int indexOf(int ch, int fromIndex) | Jis grąžina nurodytą simbolio reikšmės indeksą, pradedant nuo nurodyto indekso. |
dvidešimt vienas | int indexOf (eilutės poeilutė) | Jis grąžina nurodytą poeilutės indeksą. |
22 | int indexOf (eilutės poeilutė, int fromIndex) | Jis grąžina nurodytą eilutę, pradedant nuo nurodyto indekso. |
23 | Eilutę į mažąsias raides () | Jis grąžina eilutę mažosiomis raidėmis. |
24 | Eilutę iki mažųjų raidžių (lokalė l) | Jis grąžina eilutę mažosiomis raidėmis, naudodamas nurodytą lokalę. |
25 | Eilutę su didžiosiomis raidėmis() | Jis grąžina eilutę didžiosiomis raidėmis. |
26 | Eilutę su didžiosiomis raidėmis (lokalė l) | Jis grąžina eilutę didžiosiomis raidėmis, naudodamas nurodytą lokalę. |
27 | Stygos apdaila () | Tai pašalina šios eilutės pradžios ir pabaigos tarpus. |
28 | statinė eilutė valueOf(int value) | Jis konvertuoja nurodytą tipą į eilutę. Tai perkrautas metodas. |
Ar tu žinai?
- Kodėl stygų objektai yra nekintantys?
- Kaip sukurti nepakeičiamą klasę?
- Kas yra stygų pastovus baseinas?
- Kokį kodą įrašo kompiliatorius, jei bet kurią eilutę sujungiate su + (string concatenation operator)?
- Kuo skiriasi „StringBuffer“ ir „StringBuilder“ klasė?
Ko išmoksime styginių tvarkyme?
- Stygos samprata
- Nekintama styga
- Stygų palyginimas
- Stygų sujungimas
- Poeilutės samprata
- Styginių klasės metodai ir jų naudojimas
- StringBuffer klasė
- StringBuilder klasė
- Nekintamos klasės kūrimas
- toString() metodas
- StringTokenizer klasė