Ř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
Krok 1. Vytvořte řetězec pomocí konstruktoru třídy String
String str = new String („Ahoj!“);
Krok 2. Vytvořte řetězec přímým přiřazením řetězce
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ů.
Krok 2. Vyvolejte soubor
délka()
metodu na objekt String a výsledek uložte do celočíselné proměnné.
int strLength = str.length ();
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
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.
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 +" / "."); }}
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 +" / "."); }}
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); }}
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 +" / "."); }}
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
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.
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
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.
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
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"); }}
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"); }}
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ů.