Java Manipulace s řetězci s PŘÍKLADEM
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ě –
Proč používat Strings?
Jednou z primárních funkcí moderní informatiky je zpracování lidského jazyka.
Podobně jako čísla jsou důležitá pro matematiku, jazykové symboly jsou důležité pro význam a rozhodování. Ačkoli 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ů
Nyní pojďme k nějaké syntaxi, koneckonců to musíme zapsat 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 -
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”.
Zkontrolujte níže uvedený úryvek kódu a vysvětluje dvě metody, jak provést 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:
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!