logo

Řetězec Java

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í .

Řetězec v Javě

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ě.

CharSequence 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:

  1. Řetězcovým doslovem
  2. 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 

Řetězec Java

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.MetodaPopis
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