5 způsobů, jak manipulovat s řetězci v Javě

Obsah:

5 způsobů, jak manipulovat s řetězci v Javě
5 způsobů, jak manipulovat s řetězci v Javě

Video: 5 způsobů, jak manipulovat s řetězci v Javě

Video: 5 způsobů, jak manipulovat s řetězci v Javě
Video: How to Add Simple User-Level Security to Microsoft Access Databases 2024, Duben
Anonim

Řetězce jsou sekvence znaků. Například „ahoj!“je řetězec, protože se skládá ze znaků 'H', 'e', 'l', 'l', 'o' a '!'. V Javě jsou řetězce objekty, což znamená, že existuje třída String, která má pole a metody. K manipulaci s řetězci můžeme použít metody třídy String.

Kroky

Metoda 1 z 5: Vytvořte řetězec

3016567 1 1
3016567 1 1

Krok 1. Vytvořte řetězec pomocí konstruktoru třídy String

    String str = new String („Ahoj!“);

3016567 2 1
3016567 2 1

Krok 2. Vytvořte řetězec přímým přiřazením řetězce

3016567 3 1
3016567 3 1

Krok 3. Zkuste příklad

Zde je ukázkový program, který vytvoří řetězec dvěma různými způsoby.

    public class StringManipulation {public static void main (String args) {String str1 = new String ("String created with a constructor!"); String str2 = "Řetězec vytvořený bez konstruktoru!"; System.out.println (str1); System.out.println (str2); }}

Metoda 2 z 5: Najděte délku řetězce

Krok 1. Pochopte, co to znamená najít délku řetězce

Délka řetězce je počet znaků, které řetězec obsahuje. Například délka řetězce „Dobrý den!“je 6, protože má 6 znaků.

3016567 5 1
3016567 5 1

Krok 2. Vyvolejte soubor

délka()

metodu na objekt String a výsledek uložte do celočíselné proměnné.

    int strLength = str.length ();

3016567 6 1
3016567 6 1

Krok 3. Zkuste to

Zde je ukázkový program, který zjistí délku řetězce.

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; int strLength = str.length (); System.out.println ("Délka \" " + str +" / "je" + strLength + "."); }}

Metoda 3 z 5: Obrátit řetězec

3016567 7
3016567 7

Krok 1. Pochopte, co to znamená obrátit řetězec

Obrácení řetězce znamená přepnutí řazení znaků v řetězci. Například zadní část řetězce „Dobrý den!“je "! olleH". V Javě existuje mnoho způsobů, jak obrátit řetězec.

3016567 8 1
3016567 8 1

Krok 2. Použijte obrácenou metodu třídy StringBuffer

Vytvořte objekt StringBuffer, který jako parametr převezme řetězec, který chcete obrátit. Použijte metodu StringBuffer's reverse () a poté načtěte nově obrácený řetězec pomocí metody toString ().

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; StringBuffer buffer = nový StringBuffer (str); Řetězec reversedStr = buffer.reverse (). ToString (); System.out.println ("Reverz řetězce \" " + str +" / "je \" " + reversedStr +" / "."); }}

3016567 9 1
3016567 9 1

Krok 3. Opakujte znaky v řetězci obráceně a připojte tyto znaky k StringBuffer při každé iteraci

Vytvořte nový StringBuffer objekt inicializovaný s délkou řetězce, který chcete jako parametr obrátit. Potom pomocí smyčky for iterujte řetězec, počínaje posledním znakem v řetězci a konče prvním znakem v řetězci. Při každé iteraci připojte znak v tomto indexu k StringBuffer. Načtěte nově obrácený řetězec pomocí metody toString ().

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; Vyrovnávací paměť StringBuffer = nový StringBuffer (str.length ()); for (int i = str.length ()-1; i> = 0; i--) {buffer.append (str.charAt (i)); } Řetězec reversedStr = buffer.toString (); System.out.println ("Reverzní část řetězce \" " + str +" / "je \" " + reversedStr +" / "."); }}

3016567 10 1
3016567 10 1

Krok 4. Napište rekurzivní funkci pro obrácení řetězce

V rekurzivní funkci je základní případ / podmínka, pokud je řetězec nulový nebo pokud je délka řetězce menší nebo rovna žádnému. V opačném případě se znovu zavolá metoda reverse () s řetězcem mínus první znak a první znak se připíná na konec. Pokud jsme tedy předali řetězec „Ahoj!“, První volání reverse () po něm bude mít parametr „ello!“.

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; Řetězec reversedStr = reverse (str); System.out.println ("Reverz řetězce \" " + str +" / "je \" " + reversedStr +" / "."); } private static String reverse (String str) {if (str == null || str.length () <= 1) return str; návrat vzad (str.substring (1)) + str.charAt (0); }}

3016567 11 1
3016567 11 1

Krok 5. Převeďte řetězec na řadu znaků a poté prohoďte první a poslední, druhé a druhé za poslední atd

znaky. Nejprve převeďte řetězec na řadu znaků pomocí metody toCharArray () na řetězci. Získejte index posledního znaku v poli, který se rovná délce pole minus jeden. Poté opakujte pole a vyměňte ith znak a indexOfLastChar - ith charakter při každé iteraci. Nakonec převeďte pole znaků zpět na řetězec.

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; char charArray = str.toCharArray (); int indexOfLastChar = charArray.length - 1; for (int i = 0; i <charArray.length/2; i ++) {char temp = charArray ; charArray = charArray [indexOfLastChar - i]; charArray [indexOfLastChar - i] = temp; } Řetězec reversedStr = nový řetězec (charArray); System.out.println ("Reverz řetězce \" " + str +" / "je \" " + reversedStr +" / "."); }}

3016567 12 1
3016567 12 1

Krok 6. Zkontrolujte svůj výstup

Zde je výstup, který je výsledkem kterékoli z těchto metod pro obrácení řetězce.

Metoda 4 z 5: Ořízněte bílý prostor v řetězci

3016567 13
3016567 13

Krok 1. Pochopte, co to znamená oříznout prázdné místo v řetězci

Oříznutí řetězce v Javě znamená odstranění úvodního a koncového prázdného místa v řetězci. Pokud například máte řetězec"

Ahoj světe!

. odstraněn úvodní a koncový prázdný prostor nebo původní řetězec, pokud neobsahuje žádné prázdné nebo koncové prázdné místo.

3016567 14 1
3016567 14 1

Krok 2. Ořízněte mezeru pomocí metody trim () třídy String na objektu String

Všimněte si, že metoda trim () vyvolá výjimku, pokud je řetězec null. Metoda trim () nezmění obsah původního řetězce, protože řetězce v Javě jsou neměnné, což znamená, že stav řetězce nelze po jeho vytvoření upravit. Metoda trim () spíše vrátí nový řetězec, jehož mezery jsou oříznuty.

    Řetězec trimmedStr = str.trim ();

Krok 3. Zkuste příklad

Zde je ukázkový program, který ořízne prázdné místo řetězce:

    public class StringManipulation {public static void main (String args) {String str = "Hello!"; Řetězec trimmedStr = str.trim (); System.out.println ("Původní řetězec je \" " + str +" / "."); System.out.println ("Oříznutý řetězec je \" " + trimmedStr +" / "."); }}

Metoda 5 z 5: Rozdělit řetězec

3016567 16
3016567 16

Krok 1. Pochopte, co to znamená rozdělit řetězec

Rozdělit řetězec v Javě znamená rozdělit řetězec určitým oddělovačem na řadu podřetězců. Pokud bych například oddělil řetězec „červená, modrá, zelená, žlutá, růžová“čárkou jako oddělovač, dostal bych pole {„červená“, „modrá“, „zelená“, „žlutá“, „růžová“ }. Zde jsou tři různé způsoby rozdělení řetězce.

3016567 17 1
3016567 17 1

Krok 2. Použijte

StringTokenizer

tokenizovat řetězec.

Import

java.util. StringTokenizer

. Poté vytvořte novou instanci a

StringTokenizer

s řetězcem k tokenizaci a oddělovačem jako parametry. Pokud nezadáte oddělovač jako parametr, oddělovač se automaticky nastaví na prázdné místo. Poté, co máte

StringTokenizer

můžete použít

nextToken ()

způsob získání každého tokenu.

    import java.util. Arrays; import java.util. StringTokenizer; public class StringManipulation {public static void main (String args) {String str = "red, green, blue, yellow, pink"; StringTokenizer tokenizer = nový StringTokenizer (str, ","); int numberOfTokens = tokenizer.countTokens (); String splitArr = nový řetězec [numberOfTokens]; for (int i = 0; i <numberOfTokens; i ++) {splitArr = tokenizer.nextToken (); } System.out.println ("\ nPůvodní řetězec:" + str); System.out.println ("Rozdělit pole:" + Arrays.toString (splitArr) + "\ n"); }}

  • Před verzí Java 1.4

    StringTokenizer

    třída byla použita k rozdělení řetězců v Javě. Ale teď, použití

    StringTokenizer

    se nedoporučuje a používání

    rozdělit()

    metoda v

    Tětiva

    třídy nebo použití

    java.util.regex

  • balíček je podporován.
3016567 18 1
3016567 18 1

Krok 3. Použijte

Tětiva

třídy

rozdělit()

metoda.

The

rozdělit()

metoda převezme oddělovač jako param a vrátí pole dílčích řetězců, které jsou stejné jako tokeny z

StringTokenizer

    import java.util. Arrays; public class StringManipulation {public static void main (String args) {String str = "red, green, blue, yellow, pink"; Řetězec splitArr = str.split (","); System.out.println ("\ nPůvodní řetězec:" + str); System.out.println ("Rozdělit pole:" + Arrays.toString (splitArr) + "\ n"); }}

3016567 19 1
3016567 19 1

Krok 4. Řetězec rozdělte pomocí regulárních výrazů

Import

java.util.regex. Pattern

. Použijte

kompilovat()

metoda

Vzor

třídu nastavit oddělovač a poté zadat

rozdělit()

zpracujte řetězec, který chcete rozdělit. The

Vzor

vrátí řadu podřetězců.

    import java.util. Arrays; import java.util.regex. Pattern; public class StringManipulation {public static void main (String args) {String str = "red, green, blue, yellow, pink"; String splitArr = Pattern.compile (",").split (str); System.out.println ("\ nPůvodní řetězec:" + str); System.out.println ("Rozdělit pole:" + Arrays.toString (splitArr) + "\ n"); }}

3016567 20 1
3016567 20 1

Krok 5. Zkontrolujte svůj výstup

Zde je výstup, který je výsledkem kterékoli z těchto metod pro rozdělení řetězců.

Doporučuje: