Mnoho kódování zahrnuje manipulaci s textem, od jazykového překladu až po jednoduché spojování slov. Java, stejně jako většina ostatních jazyků, má vynikající vestavěnou podporu, která vám pomůže pracovat s řetězci.
Java velmi dobře podporuje jednoduchý případ spojování – neboli zřetězení – řetězců. Ve skutečnosti existuje dostatek různých způsobů spojování textu, takže budete chtít znát jejich rozdíly a proč byste mohli použít každý přístup.
Použijte znaménko +
Ze všech věci, které byste měli vědět o řetězcích v Javě, základní zřetězení pomocí + operátor je jedním z nejzákladnějších. Pokud máte dva nebo více řetězců, můžete je spojit pomocí znaménka +.
Můžete to udělat takto:
veřejnosttřídaStringConcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
String var1 = "Dobrý den,";
String var2 = "Jmenuji se";
String var3 = "Advait";
System.out.println (var1 + " " + var2 + " " + var3);
}
}
Konečný výstup je následující:
Ve výše uvedeném kódu máte hodnoty řetězce ve třech různých proměnných (var1, var2 a var3), které spojíte znaménkem +.
Prázdné uvozovky uzavírají mezery, které můžete označit jako oddělovač. V tomto případě fungují jako mezery mezi slovy v poslední větě. The println funkce vytiskne konečný výstup jako poslední krok.
Spojte více řádků řetězců se znaménkem +
Můžete spojit několik řetězců, i když jsou rozprostřeny na různých řádcích. K tomu stačí použít a + znaménko mezi každým řetězcem:
veřejnosttřídaStringConcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
Řetězec var1 = "Dobrý den, " +
"Jmenuji se Advait." +
" " +
"Jsem spisovatel na MUO.";
System.out.println (var1);
}
}
Zde je výstup výše uvedeného kódu:
Když spustíte výše uvedený kód, spojí všechny řetězce dohromady a vytvoří jeden jediný kus textu.
Použijte StringBuilder
Třídu StringBuilder můžete také použít ke zřetězení řetězců v Javě.
Jednou z bezprostředních nevýhod této metody je, že používá úplně jinou třídu: StringBuilder, nikoli String. Objekt String však můžete snadno získat ze StringBuilderu vyvoláním jeho metody toString(). To se děje standardně v mnoha kontextech.
Můžete použít připojit metoda pro přidání řetězce na konec aktuálního obsahu StringBuilderu.
veřejnosttřídaStringConcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
StringBuilder strn_builder = Nový StringBuilder();strn_builder.append("Dobrý den,");
strn_builder.append(" Já jsem");
strn_builder.append(" Advait Singh");
System.out.println (strn_builder.toString());
}
}
Výstup vypadá takto:
Jak název napovídá, funkce append() spojuje hodnoty na konec vnitřního řetězce StringBuilderu.
Naučte se používat funkci Concat() v Javě
Tato funkce je přímočará a dělá svou práci bez problémů. Než začnete používat tuto funkci, musíte si uvědomit následující:
- Funkci concat můžete použít pouze s řetězci.
- Pomocí této funkce můžete spojit pouze dva řetězce. Metodu však můžete řetězit, protože vrací řetězec, takže jako kód str1.concat (str2).concat (str3) bude fungovat tak, jak očekáváte.
Zde je návod, jak můžete použít funkci concat() v Javě:
veřejnosttřídaStringconcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
// Definujte hodnoty řetězce ve var1 a var2
String var1 = "Dobrý den,";
String var2 = "Jmenuji se Advait Singh";// var3 obsahuje zřetězenou hodnotu, kde var1 je spojen s var2
Řetězec var3 = var1.concat (var2);
// Vytiskne konečnou verzi uloženou ve var3
System.out.println (var3);
}
}
Proměnné var1 a var2 ukládají řetězce, zatímco var3 ukládá výsledek jejich spojení. Metoda concat spojuje druhou proměnnou, var2, s var1. Kód přiřadí výsledek z concat třetí proměnné, var3, a vypíše jej:
Použití funkce Formát v Javě
Další metodou je formát funkce, která je velmi užitečná pro zřetězení řetězců. Toto je běžná funkce dostupná v mnoha programovacích jazycích. Metoda formátu Pythonu, je například velmi podobný.
Základní syntaxe této funkce je string.format(), za kterým následuje specifikátor formátu (např. %s) a řetězcové hodnoty/objekty.
veřejnosttřídaStringconcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
// Definice řetězcových hodnot v první a druhé proměnné
String var1 = "Dobrý den,";
String var2 = "Jmenuji se Advait Singh";// Ke zřetězení řetězců použijte funkci format
String var3 = String.format("%s%s", var1, var2);
// Vytiskne výstup uložený ve var3
System.out.println (var3);
}
}
Tento příklad používá specifikátor formátu %s, který funguje jako zástupný symbol pro řetězec. Protože argument format obsahuje dva řetězce, musíte za ním následovat přesně dva argumenty String: v tomto případě var1 a var2. Výsledkem je pak naformátovaný řetězec, který kód vytiskne do konzole:
Pomocí metody String.join().
V Javě je mnoho metod, které pracují s řetězci. Další užitečnou funkcí je String.join() metoda, která spojuje dva řetězce dohromady. Všimněte si, že se jedná o metodu třídy, nikoli o metodu instance. Voláte ji v samotné třídě String, nikoli v jednotlivém objektu String.
Nejste omezeni na zřetězení pouze dvou řetězců pomocí metody spojení. Můžete předat libovolný počet parametrů řetězce a spojením je všechny zkombinujete pomocí prvního parametru, oddělovače:
veřejnosttřídaStringconcat_Java{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů)
{
// Vytvořte nové řetězce a uložte je do proměnných var1 a var2
String var1 = "Dobrý den,";
String var2 = "Jmenuji se Advait";// Ke spojení řetězců použijte metodu String.join
String var3 = String.join(" ", var1, var2);
System.out.println (var3);
}
}
Tento kód kombinuje dva řetězcové literály, uloží výsledek do var3 a poté jej vytiskne do konzoly:
Funkce mnohostranného zřetězení řetězců Java
Praktické funkce Java vám dávají mnoho možností, které je třeba vzít v úvahu při provádění jednoduchého úkolu spojování řetězců. Je dobré si tyto alternativní přístupy procvičit, abyste pochopili, jak fungují a jaké jsou jejich rozdíly.
Mezi zřetězením řetězců v Javě a v Pythonu je mnoho podobností. Často můžete přenášet znalosti o zřetězení řetězců mezi jazyky. Dobrým příkladem je syntaxe specifikátorů formátu, které String.format používá. Jazyky jako Python, C a PHP znovu používají tento koncept a alespoň některé jeho detaily.