Manipulace s řetězci v Java s PŘÍKLADEM

⚡ Chytré shrnutí

Manipulace s řetězci v Java spoléhá na třídu String, která reprezentuje text jako pole znaků, a poskytuje vestavěné metody, jako jsou length, indexOf, charAt, compareTo, contains, replace a převod velkých a malých písmen, pro efektivní zpracování a transformaci textu.

  • 🔤 Základy řetězců: A Java String je pole znaků spravované třídou String, která rozšiřuje Object.
  • Zřetězení: Spojte řetězce pomocí metody concat() nebo operátoru + pro stejný výsledek.
  • 📏 Metody kontroly: Funkce length(), indexOf() a charAt() vracejí velikost, index znaku a znak na dané pozici.
  • 🔎 Porovnání a vyhledávání: Funkce compareTo(), compareToIgnoreCase() a contains() porovnávají řetězce a kontrolují přítomnost sekvencí.
  • ✏️ Proměna: Funkce replace(), toLowerCase() a toUpperCase() upravují obsah řetězce a velikost písmen.
  • 🔒 Neměnnost: Řetězce jsou konečné a neměnné; JVM je ukládá do fondu konstant řetězců.

Manipulace s řetězci v Java

V čem jsou řetězce Java?

Řetězec v doslovném vyjádření je řada znaků. Hej, říkal jsi znaky, není to primitivní datový typ Java. Ano, z technického hlediska tedy základní Java Řetězec je v podstatě pole znaků.

Takže můj výše uvedený řetězec „ROSE“ může být reprezentováno následovně –

Java Řetězec

Proč používat Strings?

Jednou z primárních funkcí moderní informatiky je zpracování lidského jazyka.

Podobně jako jsou čísla důležitá pro matematiku, jsou jazykové symboly důležité pro význam a rozhodování. I když to nemusí být pro uživatele počítačů viditelné, počítače zpracovávají jazyk na pozadí stejně přesně a přesně jako kalkulačka. Dialogová okna nápovědy poskytují pokyny. Nabídky poskytují možnosti. A datové displeje zobrazují stavy, chyby a změny jazyka v reálném čase.

Jako Java programátoru, jedním z vašich hlavních nástrojů pro ukládání a zpracování jazyka bude třída String.

Příklady syntaxe řetězců

A teď se pojďme podívat na syntaxi, koneckonců to musíme napsat v Java kód to není.

Řetězec je pole znaků reprezentovaných jako:

//String is an array of characters
char[] arrSample = {'R', 'O', 'S', 'E'};
String strSample_1 = new String (arrSample);

Z technického hlediska je řetězec definován následovně ve výše uvedeném příkladu -

= new (argument);

Nyní vždy nemůžeme psát naše řetězce jako pole; proto můžeme definovat řetězec v Java následujícím způsobem:

//Representation of String
String strSample_2 = "ROSE";

Z technického hlediska je výše uvedené jako:

= ;

Jedno Řetězcová třída Java rozšiřuje ο Třída objektu.

Zřetězení řetězců:

Zřetězení je spojení dvou nebo více řetězců.

Podívejte se na obrázek níže -

Příklady syntaxe řetězců

Máme dva řetězce str1 = „Rock“ a str2 = „Star“

Pokud tyto dva řetězce sečteme, měli bychom mít výsledek jako str3= “RockStar”.

Podívejte se na níže uvedený úryvek kódu, který vysvětluje dvě metody pro zřetězení řetězců.

První je použití „konkat” metoda třídy String a druhá používá aritmetický operátor „+“. Obojí má za následek stejný výstup

public class Sample_String{
  public static void main(String[] args){
//String Concatenation
String str1 = "Rock";
String str2 = "Star";
//Method 1 : Using concat
String str3 = str1.concat(str2);
System.out.println(str3);
//Method 2 : Using "+" operator
String str4 = str1 + str2;
System.out.println(str4);
}
}

Očekávaný výstup:

RockStar
RockStar

důležitý Java řetězcové metody:

Java řetězcové metody

Zeptejme se na Java Zařaďte do třídy několik otázek a zjistěte, zda na ně dokáže odpovědět:

Metoda „délka“ řetězce

Jak určíte délku daného řetězce? Poskytl jsem metodu nazvanou „délka“. Použijte jej proti struně, kterou potřebujete k nalezení délky.

public class Sample_String{
  public static void main(String[] args){  //Our sample string for this tutorial
  String str_Sample = "RockStar";
  //Length of a String
  System.out.println("Length of String: " + str_Sample.length());}}

Očekávaný výstup:

Length of String: 8

Metoda řetězce „indexOf“.

Pokud znám délku, jak zjistím, která postava je na jaké pozici? Stručně řečeno, jak najdu index znaku?

Odpověděl jste si sám, kámo, existuje metoda „indexOf“, která vám pomůže určit umístění konkrétní postavy, kterou určíte.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));
//Index of a given character
System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}

Očekávaný výstup:

Character at position 5: t
Index of character 'S': 4

Metoda řetězce „charAt“.

Podobně jako u výše uvedené otázky, vzhledem k indexu, jak poznám postavu na daném místě?

Opět jednoduchý!! Použijte metodu „charAt“ a zadejte index, jehož znak potřebujete najít.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));}}

Očekávaný výstup:

Character at position 5: t

Metoda řetězce „CompareTo“.

Chci zkontrolovat, zda se řetězec, který byl vygenerován nějakou metodou, rovná něčemu, co chci ověřit? Jak porovnám dva řetězce?

Použijte metodu „compareTo“ a zadejte řetězec, který chcete porovnat.

Pokud nechcete, aby výsledek rozlišoval malá a velká písmena, použijte „compareToIgnoreCase“.

Výsledek bude mít hodnotu 0, pokud je řetězec argumentu roven tomuto řetězci; hodnotu menší než 0, pokud je tento řetězec lexikograficky menší než argument řetězce; a hodnotu větší než 0, pokud je tento řetězec lexikograficky větší než argument řetězce.

public class Sample_String{
  public static void main(String[] args){//Compare to a String
String str_Sample = "RockStar";
  System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
  //Compare to - Ignore case
  System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}

Očekávaný výstup:

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

Metoda řetězce „Contain“.

Částečně vím, co by měl řetězec obsahovat, jak potvrdím, že řetězec obsahuje sekvenci znaků, kterou určím?

Použijte metodu "obsahuje“ a zadejte znaky, které potřebujete zkontrolovat.

Vrácení zboží pravdivý pouze tehdy, pokud tento řetězec obsahuje zadanou sekvenci hodnot znaků.

public class Sample_String{
  public static void main(String[] args){  //Check if String contains a sequence
String str_Sample = "RockStar";
  System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}

Očekávaný výstup:

Contains sequence 'tar': true

Metoda řetězce „endsWith“.

Jak potvrdím, že řetězec končí určitou příponou? Opět jsi odpověděl. Použijte metodu „endsWith“ a zadejte příponu v argumentech.

Vrácení zboží pravdivý pokud je znaková sekvence reprezentovaná argumentem příponou znakové sekvence reprezentované tímto objektem.

public class Sample_String{
  public static void main(String[] args){  //Check if ends with a particular sequence
String str_Sample = "RockStar";
  System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}

Očekávaný výstup:

EndsWith character 'r': true

Řetězec metody „replaceAll“ & „replaceFirst“.

Chci upravit svůj řetězec na několika místech a nahradit několik částí řetězce?

Java Řetězec Metody Nahradit, nahraditVše a nahraditFirst. V argumentech můžete zadat část řetězce, kterou chcete nahradit, a náhradní řetězec.

public class Sample_String{
  public static void main(String[] args){//Replace Rock with the word Duke
String str_Sample = "RockStar";
System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}

Očekávaný výstup:

Replace 'Rock' with 'Duke': DukeStar

Řetězec Java "tolowercase" & Java Metoda „touppercase“.

Chci, aby se celý můj řetězec zobrazoval malými nebo velkými písmeny?

Stačí použít metody „toLowercase()“ nebo „ToUpperCase()“ proti řetězcům, které je třeba převést.

public class Sample_String{
  public static void main(String[] args){//Convert to LowerCase
String str_Sample = "RockStar";
System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase());
//Convert to UpperCase
System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}

Očekávaný výstup:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Důležitá upozornění:

  • String je závěrečná třída; tj. jakmile je hodnota vytvořena, nelze ji změnit. Objekty typu String se tedy nazývají neměnné.
  • Jedno Java Virtuální stroj (JVM) vytváří paměťové umístění speciálně pro tzv. řetězce String Constant Pool. To je důvod, proč lze řetězec inicializovat bez klíčového slova 'new'.
  • Třída String spadá pod java.lang.Hierarchie řetězců. Tuto třídu ale není potřeba importovat. Java platforma je poskytuje automaticky.
  • Řetězec odkaz lze přepsat, ale nesmaže se tím obsah; tj. pokud

Řetězec h1 = „ahoj“;

h1 = „ahoj“ + „svět“;

pak se řetězec „ahoj“ nesmaže. Prostě to ztrácí kliku.

  • Více referencí lze použít pro stejný řetězec, ale bude vyskytují na stejném místě; tj. pokud

Řetězec h1 = „ahoj“;

Řetězec h2 = „ahoj“;

Řetězec h3 = „ahoj“;

pak se v paměti vytvoří pouze jeden fond pro řetězec „ahoj“ se 3 odkazy-h1,h2,h3

  • Pokud číslo je uvedeno v „ “ potom to se stane strunou, už ne číslo. To znamená, pokud

Řetězec S1 =”Číslo je: “+ “123”+”456″;

System.out.println(S1);

pak se vytiskne: Číslo je: 123456

Pokud je inicializace takto:

Řetězec S1 = “Číslo je: “+(123+456);

System.out.println(S1);

pak se vytiskne: Číslo je:579

To je vše k Strings!

Nejčastější dotazy

Java Řetězce jsou neměnné z důvodu zabezpečení, bezpečnosti vláken a výkonu. Protože se hodnota po vytvoření nemůže změnit, může JVM bezpečně ukládat řetězce do mezipaměti v poolu konstant řetězců a sdílet odkazy.

In JavaFunkce , == porovnává odkazy na objekty, zatímco funkce equals() porovnává skutečný obsah znaků dvou řetězců. Funkce equals() se používá k ověření, zda mají dva řetězce stejnou hodnotu.

Řetězec je neměnný, zatímco StringBuilder a StringBuffer jsou měnitelné. ŘetězecBuffer je vláknově bezpečný a synchronizovaný; StringBuilder je rychlejší, ale není vláknově bezpečný, takže je ideální pro manipulaci s řetězci s jedním vláknem.

Asistenti pro kódování s umělou inteligencí dokáží generovat kód pro práci s řetězci, navrhovat správné metody, vysvětlovat regulární výrazy a detekovat chyby, jako jsou null pointer nebo indexové chyby v operacích s řetězci.

Ano. Nástroje umělé inteligence umí psát Java kód, který čistí, formátuje a transformuje text pomocí metod, jako je nahrazování, ořezávání a převod velkých a malých písmen, a poté studentům vysvětlí každý krok.

Shrňte tento příspěvek takto: