In Java , string je v podstate objekt, ktorý predstavuje postupnosť hodnôt znakov. An pole znakov funguje rovnako ako reťazec Java. Napríklad:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
je rovnaký ako:
String s='javatpoint';
Java reťazec trieda poskytuje množstvo metód na vykonávanie operácií s reťazcami, ako napríklad porovnanie (), concat (), rovná sa (), rozdelenie (), dĺžka (), nahradenie (), porovnanie s (), intern (), podreťazec () atď.
Implementuje trieda java.lang.String Serializovateľné , Porovnateľné a CharSequence rozhrania .
Rozhranie CharSequence
Rozhranie CharSequence sa používa na znázornenie postupnosti znakov. reťazec, StringBuffer a StringBuilder triedy to realizujú. To znamená, že pomocou týchto troch tried môžeme vytvárať reťazce v Jave.
Java String je nemenný, čo znamená, že ho nemožno zmeniť. Kedykoľvek zmeníme akýkoľvek reťazec, vytvorí sa nová inštancia. Pre meniteľné reťazce môžete použiť triedy StringBuffer a StringBuilder.
O nemennom reťazci budeme diskutovať neskôr. Poďme najprv pochopiť, čo je String v Jave a ako vytvoriť objekt String.
Čo je reťazec v jazyku Java?
Vo všeobecnosti je reťazec sekvenciou znakov. Ale v Jave je reťazec objekt, ktorý predstavuje postupnosť znakov. Trieda java.lang.String sa používa na vytvorenie objektu typu reťazec.
Ako vytvoriť objekt typu reťazec?
Existujú dva spôsoby, ako vytvoriť objekt typu String:
- Reťazovým doslovom
- Podľa nového kľúčového slova
1) Strunový doslov
Java String literál je vytvorený pomocou dvojitých úvodzoviek. Napríklad:
String s='welcome';
Zakaždým, keď vytvoríte reťazcový literál, JVM najskôr skontroluje „spoločnosť reťazcov“. Ak reťazec už v oblasti existuje, vráti sa odkaz na združenú inštanciu. Ak reťazec v oblasti neexistuje, vytvorí sa nová inštancia reťazca a umiestni sa do oblasti. Napríklad:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
Vo vyššie uvedenom príklade sa vytvorí iba jeden objekt. Po prvé, JVM nenájde žiadny objekt typu reťazec s hodnotou 'Welcome' v oblasti konštantných reťazcov, a preto vytvorí nový objekt. Potom nájde v fonde reťazec s hodnotou 'Vitajte', nevytvorí nový objekt, ale vráti odkaz na rovnakú inštanciu.
Poznámka: Objekty reťazcov sú uložené v špeciálnej pamäťovej oblasti známej ako „oblasť konštánt reťazcov“.
Prečo Java používa koncept String literal?
Aby Java bola efektívnejšia s pamäťou (pretože sa nevytvárajú žiadne nové objekty, ak už existujú v oblasti konštantných reťazcov).
2) Podľa nového kľúčového slova
String s=new String('Welcome');//creates two objects and one reference variable
V takom prípade JVM vytvorí nový reťazcový objekt v normálnej (non-pool) haldovej pamäti a doslovné 'Welcome' sa umiestni do oblasti reťazcových konštánt. Premenná s bude odkazovať na objekt v hromade (non-pool).
analógová komunikácia
Príklad reťazca Java
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); }}Vyskúšajte to
Výkon:
java strings example
Vyššie uvedený kód konvertuje a char pole do a Reťazec objekt. A zobrazuje objekty String s1, s2 , a s3 pri použití konzoly println() metóda.
Metódy triedy Java String
Trieda java.lang.String poskytuje mnoho užitočných metód na vykonávanie operácií so sekvenciou hodnôt znakov.
Nie | Metóda | Popis |
---|---|---|
1 | char charAt(int index) | Vráti hodnotu char pre konkrétny index |
2 | int dĺžka() | Vráti dĺžku reťazca |
3 | statický formát reťazca (formát reťazca, argumenty objektu...) | Vracia naformátovaný reťazec. |
4 | statický formát reťazca (miestne l, formát reťazca, objektové... argumenty) | Vráti naformátovaný reťazec s daným miestnym nastavením. |
5 | Podreťazec reťazca (int beginIndex) | Vráti podreťazec pre daný počiatočný index. |
6 | Podreťazec reťazca (int beginIndex, int endIndex) | Vráti podreťazec pre daný počiatočný index a koncový index. |
7 | boolean obsahuje(CharSequence s) | Vracia true alebo false po zhode sekvencie hodnoty char. |
8 | statické spojenie reťazcov (oddeľovač CharSequence, prvky CharSequence...) | Vracia spojený reťazec. |
9 | statické spojenie reťazcov (oddeľovač znakovej sekvencie, iterovateľné prvky) | Vracia spojený reťazec. |
10 | boolean rovná sa (objekt iný) | Kontroluje zhodnosť reťazca s daným objektom. |
jedenásť | boolean isEmpty() | Skontroluje, či je reťazec prázdny. |
12 | String concat (String str) | Spája zadaný reťazec. |
13 | Nahradiť reťazec (starý znak, nový znak) | Nahradí všetky výskyty zadanej hodnoty znaku. |
14 | Nahradenie reťazca (CharSequence stará, CharSequence nová) | Nahradí všetky výskyty zadanej CharSequence. |
pätnásť | statický reťazec sa rovnáIgnoreCase(reťazec iný) | Porovnáva iný reťazec. Nekontroluje veľkosť písmen. |
16 | Rozdelenie reťazca[] (regulárny výraz reťazca) | Vráti rozdelený reťazec zodpovedajúci regulárnemu výrazu. |
17 | Rozdelenie reťazca[] (regulárny výraz reťazca, limit int) | Vráti rozdelený reťazec zodpovedajúci regulárnemu výrazu a limitu. |
18 | String intern() | Vracia vložený reťazec. |
19 | int indexOf(int ch) | Vráti zadaný index hodnoty char. |
dvadsať | int indexOf(int ch, int fromIndex) | Vráti zadaný index hodnoty znaku počnúc daným indexom. |
dvadsaťjeden | int indexOf(podreťazec reťazca) | Vráti zadaný index podreťazca. |
22 | int indexOf(podreťazec reťazca, int z indexu) | Vráti zadaný index podreťazca začínajúci daným indexom. |
23 | Reťazec na malé písmená() | Vracia reťazec s malými písmenami. |
24 | Reťazec na malé písmená (miestne nastavenie l) | Vracia reťazec napísaný malými písmenami pomocou špecifikovaného miestneho nastavenia. |
25 | String toUpperCase() | Vracia reťazec napísaný veľkými písmenami. |
26 | Reťazec na veľké písmená (miestne l) | Vracia reťazec napísaný veľkými písmenami pomocou špecifikovaného miestneho nastavenia. |
27 | Orezanie reťazca() | Odstraňuje začiatočné a koncové medzery tohto reťazca. |
28 | statický reťazec valueOf(int value) | Konvertuje daný typ na reťazec. Je to preťažená metóda. |
Vieš?
- Prečo sú objekty typu String nemenné?
- Ako vytvoriť nemennú triedu?
- Čo je reťazec konštantný bazén?
- Aký kód napíše kompilátor, ak zreťazíte ľubovoľný reťazec pomocou + (operátor zreťazenia reťazcov)?
- Aký je rozdiel medzi triedou StringBuffer a StringBuilder?
Čo sa naučíme v String Handling?
- Koncept struny
- Immutable String
- Porovnanie reťazcov
- Spájanie reťazcov
- Koncept podreťazca
- Metódy triedy String a jej využitie
- Trieda StringBuffer
- Trieda StringBuilder
- Vytvorenie nemennej triedy
- metóda toString().
- Trieda StringTokenizer