v Jáva , string je v podstatě objekt, který představuje sekvenci hodnot znaků. An pole znaků funguje stejně jako řetězec Java. Například:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
je stejný jako:
String s='javatpoint';
Řetězec Java třída poskytuje mnoho metod pro provádění operací s řetězci, jako je porovnat(), concat(), rovná se(), split(), length(), nahradit(), porovnatTo(), intern(), substring() atd.
Třída java.lang.String implementuje Serializovatelné , Srovnatelný a CharSequence rozhraní .
Rozhraní CharSequence
Rozhraní CharSequence se používá k reprezentaci sekvence znaků. Tětiva, StringBuffer a StringBuilder třídy ji realizují. To znamená, že pomocí těchto tří tříd můžeme vytvářet řetězce v Javě.
Řetězec Java je neměnný, což znamená, že jej nelze změnit. Kdykoli změníme jakýkoli řetězec, vytvoří se nová instance. Pro měnitelné řetězce můžete použít třídy StringBuffer a StringBuilder.
Neměnný řetězec probereme později. Pojďme nejprve pochopit, co je String v Javě a jak vytvořit objekt String.
Co je String v Javě?
Řetězec je obecně posloupnost znaků. Ale v Javě je řetězec objekt, který představuje posloupnost znaků. Třída java.lang.String se používá k vytvoření objektu typu string.
Jak vytvořit objekt typu řetězec?
Objekt String lze vytvořit dvěma způsoby:
- Řetězcovým doslovem
- Podle nového klíčového slova
1) Strunový doslov
Java String literál je vytvořen pomocí dvojitých uvozovek. Například:
String s='welcome';
Pokaždé, když vytvoříte řetězcový literál, JVM nejprve zkontroluje „fond konstant řetězců“. Pokud řetězec již ve fondu existuje, vrátí se odkaz na sdruženou instanci. Pokud řetězec ve fondu neexistuje, vytvoří se nová instance řetězce a umístí se do fondu. Například:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
Ve výše uvedeném příkladu bude vytvořen pouze jeden objekt. Za prvé, JVM nenajde žádný objekt typu string s hodnotou 'Welcome' ve fondu konstant řetězců, proto vytvoří nový objekt. Poté najde ve fondu řetězec s hodnotou 'Welcome', nevytvoří nový objekt, ale vrátí odkaz na stejnou instanci.
Poznámka: Objekty řetězců jsou uloženy ve speciální paměťové oblasti známé jako 'skupina konstant řetězců'.
Proč Java používá koncept řetězcového literálu?
Aby Java byla efektivnější z hlediska paměti (protože se nevytvářejí žádné nové objekty, pokud již existují ve fondu konstant řetězců).
2) Podle nového klíčového slova
String s=new String('Welcome');//creates two objects and one reference variable
V takovém případě, JVM vytvoří nový objekt řetězce v normální paměti haldy (bez fondu) a doslovné 'Vítejte' bude umístěno do fondu konstant řetězců. Proměnná s bude odkazovat na objekt v haldě (non-pool).
plavat na provázek
Příklad Java String
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); }}Otestujte to hned
Výstup:
java strings example
Výše uvedený kód převádí a char pole do a Tětiva objekt. A zobrazí objekty String s1, s2 , a s3 při použití konzole println() metoda.
Metody třídy Java String
Třída java.lang.String poskytuje mnoho užitečných metod pro provádění operací s posloupností hodnot znaků.
Ne. | Metoda | Popis |
---|---|---|
1 | char charAt (index int) | Vrací hodnotu char pro konkrétní index |
2 | int délka() | Vrátí délku řetězce |
3 | statický formát řetězce (formát řetězce, argumenty objektu...) | Vrací naformátovaný řetězec. |
4 | statický formát řetězce (Locale l, String format, Object... args) | Vrací naformátovaný řetězec s daným národním prostředím. |
5 | Řetězec podřetězec (int beginIndex) | Vrací podřetězec pro daný počáteční index. |
6 | Řetězec podřetězec(int beginIndex, int endIndex) | Vrací podřetězec pro daný počáteční a koncový index. |
7 | boolean obsahuje(CharSequence s) | Vrací hodnotu true nebo false po shodě s posloupností hodnot znaku. |
8 | statické spojení řetězců (oddělovač CharSequence, prvky CharSequence...) | Vrátí spojený řetězec. |
9 | statické spojení řetězců (oddělovač CharSequence, Iterovatelné prvky) | Vrátí spojený řetězec. |
10 | boolean rovná se (objekt jiný) | Kontroluje shodnost řetězce s daným objektem. |
jedenáct | boolean isEmpty() | Zkontroluje, zda je řetězec prázdný. |
12 | String concat (String str) | Zřetězí zadaný řetězec. |
13 | Nahradit řetězec (starý znak, nový znak) | Nahradí všechny výskyty zadané hodnoty znaku. |
14 | Nahrazení řetězce (CharSequence stará, CharSequence nová) | Nahradí všechny výskyty zadané sekvence znaků. |
patnáct | statický řetězec se rovnáIgnoreCase(řetězec jiný) | Porovnává jiný řetězec. Nekontroluje případ. |
16 | Řetězec[] rozdělení (regulární výraz řetězce) | Vrátí rozdělený řetězec odpovídající regulárnímu výrazu. |
17 | Řetězec[] rozdělení (regulární výraz řetězce, limit int) | Vrací rozdělený řetězec odpovídající regulárnímu výrazu a limitu. |
18 | String intern() | Vrací vložený řetězec. |
19 | int indexOf(int ch) | Vrací zadaný index hodnoty znaku. |
dvacet | int indexOf(int ch, int fromIndex) | Vrací zadaný index hodnoty znaku počínaje daným indexem. |
dvacet jedna | int indexOf(podřetězec řetězce) | Vrátí zadaný index podřetězce. |
22 | int indexOf(řetězec podřetězec, int zIndexu) | Vrací zadaný index podřetězce počínaje daným indexem. |
23 | Řetězec pro malá písmena() | Vrací řetězec s malými písmeny. |
24 | Řetězec pro malá písmena (místní l) | Vrátí řetězec s malými písmeny pomocí zadaného národního prostředí. |
25 | Řetězec toUpperCase() | Vrací řetězec napsaný velkými písmeny. |
26 | Řetězec na velká písmena (místní l) | Vrátí řetězec napsaný velkými písmeny pomocí zadaného národního prostředí. |
27 | Řetězec () | Odstraňuje počáteční a koncové mezery tohoto řetězce. |
28 | statický řetězec valueOf(int value) | Převádí daný typ na řetězec. Je to přetížená metoda. |
Víš?
- Proč jsou objekty String neměnné?
- Jak vytvořit neměnnou třídu?
- Co je řetězec konstant?
- Jaký kód napíše kompilátor, pokud zřetězíte libovolný řetězec pomocí + (operátor zřetězení řetězců)?
- Jaký je rozdíl mezi třídou StringBuffer a StringBuilder?
Co se naučíme ve String Handling?
- Koncept řetězce
- Neměnný řetězec
- Porovnání řetězců
- Zřetězení řetězců
- Koncept podřetězce
- Metody třídy String a její použití
- Třída StringBuffer
- Třída StringBuilder
- Vytvoření neměnné třídy
- metoda toString().
- Třída StringTokenizer