Čo potrebujete vedieť o používaní reťazcov v Jave

Čo potrebujete vedieť o používaní reťazcov v Jave

Hneď ako sa začnete učiť Javu, trieda String upúta vašu pozornosť vďaka svojim jedinečným vlastnostiam.





V Jave môžete vytvárať a manipulovať s reťazcami jednoduchšie ako v iných jazykoch. Je to preto, že trieda String ponúka rôzne funkcie.





Na základe týchto funkcií existuje niekoľko spôsobov generovania a úpravy reťazcov v závislosti od vašich preferencií a potrieb. Podobne bude veľa závisieť od vašej aplikácie a od toho, kde je potrebné použiť reťazce.





Ako sa líšia reťazce Java?

Ak ste predtým pracovali s jazykom C, viete, že reťazce v jazyku C sú poľom znaky (postavy). Na druhej strane, reťazce Java sú nemenné a obsahujú znaky Unicode.

ako nahrávať hovory na iphone bez aplikácie

Jednou z kľúčových funkcií, ktoré robia reťazce v Jave jedinečnými, je zreťazenie. Na spojenie dvoch alebo viacerých reťazcov použite operátor sčítania +. To je niečo, čo nemôžete urobiť s inými objektmi Java, ako napríklad Bod alebo Kruh .



Ako už bolo spomenuté, reťazce Java sú nemenné, t.j. nemôžete ich upravovať. Napríklad metódy ako toUpperCase () a toLowerCase () namiesto vykonávania zmien v existujúcom obsahu reťazca vygenerujte úplne nový reťazec. Teraz váš kód vráti tento novo generovaný reťazec.

Súvisiace články: Ako manipulovať s textom v PHP pomocou týchto funkcií





Ďalšou oblasťou, v ktorej sa reťazce líšia, je použitie nulových znakov na ukončenie reťazcov v jazykoch, ako je C. V jazyku Java sú reťazce objekty podporované znakovými poľami. Ak chcete prečítať obsah svojho reťazca spôsobom, akým ho reprezentujú polia znakov, pomocou toCharArray () metóda bude vykonávať svoju prácu.

Porovnávanie reťazcov v Jave je tiež pohodlnejšie ako v iných programovacích jazykoch. Namiesto písania dlhého bloku kódu na porovnávanie reťazcov môžete použiť príponu rovná sa () metóda na porovnanie dvoch alebo viacerých reťazcov použitých v akomkoľvek programe. Je to hlavne preto, že v jazyku Java sa rovná sa Metóda je prepísaná triedou String, ktorá robí porovnanie reťazcov hračkou.





Na podobnú tému je aj vyhľadávanie v podreťazcoch v Jave. Pri použití regulárnych výrazov alebo metódy ako lastIndexOf () a indexOf (), po identifikácii zhody môžete vyhľadávať v segmentoch reťazcov a vrátiť hodnoty. Môžete tiež použiť regulárne výrazy na orezanie a rozdelenie rôznych reťazcov a použiť ich jednotlivo na široké spektrum použití v akomkoľvek programe.

Ako sú struny uložené v pamäti?

Teraz, keď viete, v čom sú reťazce v Jave odlišné a prospešné, preskúmajme triedu String. Ak viete niečo alebo dve o správe pamäte v Jave, potom ste sa museli zaoberať jej dvoma kľúčovými entitami: hromadou a zásobníkom.

Zásobník sa používa na spustenie procesov a operácií po zavolaní programom Java, zatiaľ čo halda ukladá obsah - potrebný na efektívne spustenie a spustenie kódu. Ako je teda správa pamäte relevantná v prípade reťazcov?

Dôvodom je, že s triedou String a doslovnými reťazcami v Jave sa zaobchádza odlišne. To znamená, že reťazcovým literálom je priradený jedinečný úložný priestor v pamäti haldy, označovaný ako reťazec konštantnej oblasti. Preto vždy, keď použijete na vytvorenie reťazcových objektov v Jave reťazcové literály, String Constant Pool ich uloží.

Naopak, keď použijete Nový kľúčové slovo na vytváranie reťazcových objektov, Java s nimi bude zaobchádzať rovnako ako s akýmikoľvek inými objektmi a pošle ich na hromadu na ukladanie.

Sláčikové literály Príklad

Teraz, keď už viete dosť o reťazcových objektoch, pozrime sa na príklad reťazcových literálov:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Tu reťazcový literál vytvoril objekt String s obsahom Hello World od MUO. Java pošle tento objekt do String Constant Pool.

Použitie nového kľúčového slova

Môžete tiež použiť Nový kľúčové slovo na generovanie reťazcových objektov.

Reťazcový objekt reťazca himuo s obsahom Hello World z MUO bol vygenerovaný reťazcovým literálom a bude odoslaný do konštantnej oblasti reťazcov. Podobne je možné aj reťazcové objekty vytvárať pomocou nového kľúčového slova takto:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

Vyššie uvedený príklad používa príponu Nový kľúčové slovo na vytvorenie reťazcového objektu. Ako už bolo vysvetlené, sú odoslané na haldu, kde sú uložené s inými premennými a objektmi, ktoré čakajú na spustenie programom.

Teraz už musíte byť zvedaví na String Constant Pool a oprávnene. Alokuje priestor v bazéne objektom na základe obsahu reťazcového objektu. Potom, čo String Constant Pool prijme objekty, skontroluje ich a overí, či dva objekty obsahujú úplne rovnaký obsah.

Môžu dva reťazcové objekty ukladať rovnaký obsah?

Keď sa na vytvorenie nového objektu použije reťazcový literál, Java Virtual Machine (JVM) skontroluje obsah objektu a vyhodnotí, či už v skupine existuje. Keď objekt obsahuje obsah, ktorý je už prítomný v oblasti, odkaz na objekt sa vráti bez vytvorenia nového objektu. Ak musíte vytvoriť nový objekt, musíte zaistiť, aby bol obsah zreteľný a jedinečný.

Ak však použijete Nový kľúčové slovo na vytvorenie nového reťazca, bude spracované inak. Keď použijete Nový kľúčové slovo na vytvorenie nového reťazca, bude vygenerované bez ohľadu na to, či obsahuje rovnaký obsah ako existujúci reťazec.

To naznačuje, že dva existujúce objekty reťazcov uložené v pamäti haldy môžu mať rovnaký obsah; to sa líši od reťazcových objektov uložených v konštantnej oblasti reťazcov. Môžete to tiež dokázať operátorom ==; vráti hodnotu true, ak sa porovnajú dva objekty s rovnakou fyzickou adresou.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Teraz môžete reťazcom v Jave ľahko porozumieť

V tomto článku ste sa dozvedeli, ako sú reťazce v Jave odlišné, spôsoby použitia reťazcov v Jave, správa pamäte reťazcov v Jave a ďalšie dôležité detaily o fungovaní reťazcov. Aby ste si vyskúšali svoje porozumenie, prečo nenapísať program Java na zreťazenie dvoch reťazcov?

zdieľam zdieľam Tweet E -mail Učíš sa Python? Tu je návod, ako manipulovať so strunami

Použitie a manipulácia so reťazcami v Pythone sa môže zdať ťažké, ale je to klamlivo jednoduché.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Java
O autorovi Usman Ghani(4 publikované články)

Usman je marketér obsahu, ktorý pomohol niekoľkým firmám s organickým rastom na digitálnych platformách. Má rád programovanie aj písanie, čo znamená, že technické písanie ho veľmi baví. Keď nepracuje, Usman rád trávi čas sledovaním televíznych relácií, sledovaním kriketu a čítaním o analytike dát.

Viac od Usmana Ghaního

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber