Co potřebujete vědět o používání řetězců v Javě

Co potřebujete vědět o používání řetězců v Javě

Jakmile se začnete učit Javu, třída String si díky svým jedinečným vlastnostem získá vaši pozornost.





V Javě můžete vytvářet řetězce a manipulovat s nimi snadněji než v jiných jazycích. Důvodem je, že třída String nabízí různé funkce.





Na základě těchto funkcí existuje několik způsobů generování a úpravy řetězců v závislosti na vašich preferencích a potřebách. Podobně bude hodně záviset na vaší aplikaci a na tom, kde je třeba použít řetězce.





Jak se liší řetězce Java?

Pokud jste dříve pracovali s jazykem C, víte, že řetězce v jazyce C jsou řadou znaky (znaky). Na druhou stranu jsou řetězce Java neměnné a obsahují znaky Unicode.

jak upgradovat notebook pro hraní her

Jednou z klíčových funkcí, díky nimž jsou řetězce v Javě jedinečné, je zřetězení. Ke spojení dvou nebo více řetězců použijte operátor sčítání +. To je něco, co nemůžete dělat s jinými objekty Java, jako například Směřovat nebo Kruh .



Jak již bylo zmíněno výše, řetězce Java jsou neměnné, tj. Nemůžete je upravovat. Například metody jako toUpperCase () a toLowerCase () místo provádění změn ve stávajícím obsahu řetězce vygenerujte zcela nový řetězec. Nyní váš kód vrátí tento nově generovaný řetězec.

Související: Jak s těmito funkcemi manipulovat s textem v PHP





Další oblastí, kde se řetězce liší, je použití nulových znaků pro ukončení řetězců v jazycích, jako je C. V Javě jsou řetězce objekty podporované znakovými poli. Pokud chcete přečíst obsah vašeho řetězce způsobem, jakým jej reprezentují pole znaků, pomocí toCharArray () metoda bude dělat svou práci.

Porovnání řetězců v Javě je také pohodlnější než v jiných programovacích jazycích. Spíše než psát dlouhý blok kódu pro porovnávání řetězců můžete použít rovná se() metoda pro porovnání dvou nebo více řetězců použitých v jakémkoli programu. Je to hlavně proto, že v Javě rovná se metoda je přepsána třídou String, což činí porovnání řetězců hračkou.





Podobně je vyhledávání v podřetězcích v Javě také bezproblémové. Při použití regulárních výrazů nebo podobné metody lastIndexOf () a indexOf (), po vyhledání shody můžete vyhledávat segmenty řetězců a vracet hodnoty. Můžete také použít regulární výrazy k oříznutí a rozdělení různých řetězců a použít je jednotlivě pro širokou škálu použití v jakémkoli programu.

Jak jsou řetězce uloženy v paměti?

Nyní, když víte, v čem jsou řetězce v Javě odlišné a prospěšné, pojďme prozkoumat třídu String. Pokud víte něco o správě paměti v Javě, pak jste se museli zabývat jejími dvěma klíčovými entitami: hromadou a zásobníkem.

Zásobník se používá k provádění procesů a operací poté, co byl vyvolán programem Java, zatímco halda ukládá obsah - potřebný pro efektivní spouštění a spouštění kódu. Jak je tedy správa paměti relevantní v případě řetězců?

Důvodem je, že třída String a řetězcové literály v Javě mají odlišné zacházení. To znamená, že řetězcovým literálům je v paměti haldy přiřazen jedinečný úložný prostor, označovaný jako String Constant Pool. Proto kdykoli použijete řetězcové literály k vytváření řetězcových objektů v Javě, String Constant Pool je uloží.

Naopak, když použijete Nový klíčové slovo pro vytváření řetězcových objektů, Java s nimi bude zacházet stejně jako s jinými objekty a posílat je na hromadu pro uložení.

Řetězcové literály Příklad

Nyní, když víte dost o řetězcových objektech, pojďme se podívat na příklad řetězcových literálů:


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

Řetězcový literál zde vytvořil objekt String s obsahem Hello World od MUO. Java pošle tento objekt do String Constant Pool.

Pomocí nového klíčového slova

Můžete také použít Nový klíčové slovo pro generování řetězcových objektů.

Řetězcový objekt řetězce himuo s obsahem Hello World z MUO byl vygenerován řetězcovým literálem a bude odeslán do String Constant Pool. Obdobně lze řetězcové objekty také vytvářet pomocí nového klíčového slova následujícím způsobem:


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

Výše uvedený příklad používá Nový klíčové slovo pro vytvoření řetězcového objektu. Jak již bylo vysvětleno dříve, jsou odeslány na haldu, kde jsou uloženy s dalšími proměnnými a objekty čekajícími na spuštění programem.

Nyní už musíte být na String Pool konstantní a správně. Přiděluje prostor fondu objektům na základě obsahu řetězcového objektu. Poté, co String Constant Pool přijme objekty, zkontroluje je a ověří, zda dva objekty obsahují přesně stejný obsah.

Mohou dva řetězcové objekty ukládat stejný obsah?

Když je k vytvoření nového objektu použit řetězcový literál, Java Virtual Machine (JVM) zkontroluje obsah objektu a vyhodnotí, zda již ve fondu existuje. Pokud objekt obsahuje obsah, který je již ve fondu přítomen, je odkaz na objekt vrácen bez vytvoření nového objektu. Pokud musíte vytvořit nový objekt, musíte zajistit, aby byl obsah odlišný a jedinečný.

Pokud však používáte Nový klíčové slovo pro vytvoření nového řetězce, bude zpracováno odlišně. Když použijete Nový klíčové slovo pro vytvoření nového řetězce, bude generováno bez ohledu na to, zda obsahuje stejný obsah jako stávající řetězec.

To znamená, že dva existující objekty řetězců uložené v paměti haldy mohou mít stejný obsah; toto se liší od řetězcových objektů uložených ve String Constant Pool. Můžete to také dokázat pomocí operátoru ==; vrací true, pokud jsou porovnávány dva objekty se stejnou 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);
}
}

Nyní můžete řetězcům v Javě snadno porozumět

V tomto článku jste se dozvěděli, jak se řetězce v Javě liší, způsoby použití řetězců v Javě, správa paměti řetězců v Javě a další důležité detaily o tom, jak řetězce fungují. Chcete -li otestovat své porozumění, proč nenapsat program Java pro zřetězení dvou řetězců?

Podíl Podíl tweet E-mailem Učit se Python? Zde je návod, jak manipulovat s řetězci

Používání a manipulace s řetězci v Pythonu se může zdát obtížné, ale je klamně jednoduché.

Číst dále
Související témata
  • Programování
  • Jáva
O autorovi Usman Ghaní(4 publikované články)

Usman je obchodník s obsahem, který pomohl několika podnikům s organickým růstem na digitálních platformách. Má rád programování i psaní, což znamená, že technické psaní je něco, co ho velmi baví. Když nepracuje, Usman rád tráví čas sledováním televizních pořadů, sledováním kriketu a čtením o analytice dat.

Více od Usmana Ghaniho

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru