|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Programování v jazyku Java (6) - Řetězce IV tomto díle si ukážeme jak jsou v Javě ukládány a zpracovávány textové informace.
Řetězce I
Řětězce slouží k ukládání textových informací. V Javě jsou vnitřně kódovány v UNICODE. Používají dvě základní objektové třídy - Třída String slouží k ukládání konstantních textových informací, které nehodláme (nebo jen málo) měnit. Hodnota v objektu typu String totiž je konstantní, při změně nebo přiřazení jiné hodnoty je vytvořen v paměti nový objekt a přiřazen původní proměnné. Původní hodnota objektu je posléze v paměti smazána. Což spotřebuje určitou časovou i systémovou režii. Proto je pro ukládání textových informací, které jsou v programu častěji modifikovány, rozšiřovány či spojovány lépe použít třídu StringBuffer, které se budeme věnovat příště. StringProměnnou typu String lze obvykle inicializovat přiřazením textové konstanty: String s= "Helo World"; Kromě přímého přiřazení pevné textové hodnoty můžeme řetězec inicializovat již při jeho deklaraci i jinak: String s= new String() ; // prázdný řetězec String s= new String(String t); //rovnou překopíruje jiný řetězec String s= new String(char ch[] ); // řetězec z pole znaků String s= new StringBuffer(); // řetězec z objektu StringBuffer String s = new String(byte[] pole,"ISO8859_2") /*vytvoří a převede řetězec z pole znaků v jiné znakové sadě" */ Řetězce můžeme spojovat (s výhradou vůči optimalizaci, viz výše ) operátorem + String Jmeno="Jan";String Prijmeni="Novak"; String Vizitka= Jmeno+ " "+ Prijmeni; System.out.println("Jeho inicialy jsou " + Jmeno+ " "+ Prijmeni); Aktuální délku řetězce vrací metoda length : int delka=Jmeno.length();
Co provádět nemůžeme, to je porovnání řetězců operátorem String s1="Jan";boolean ok; ok=s1.equals("Jan"); //vraci true ok=s1.equals("jan"); //vraci false ok=s1.equalsIgnoreCase("jan"); //takhle je to OK ok=s1.equals("franta"); //vraci false
Potřebujeme-li při porovnání určit který z řetězců je větší, použijeme metodu String s1="Jan"; int i=s1.compareTo("franta"); // vrací záporné číslo Metoda compareTo vrací 0 pokud jsou oba řetězce stejné,záporné číslo pokud je porovnávaný řetězec menší než předaný poarametr a kladné číslo pokud je větší.
Pro porovnání zda text obsahuje pouze určité skupiny znaků slouží metoda
Jednotlivé znaky v řetězci lze měnit pomocí metody String s="01234567890"; s=s.replace('0','X'); //změní všechny znaky 0 na X
K metodám, měnícím obsah řetězce patří také
Vyhledávat text v řetězci lze pomocí metody
Opačnou funkci, tedy vrácení řetězce na určité pozici obstarávají metody String s="01234567890" int poz= s.indexOf("456") //vyhledá pozici podřetězce v celém řetězci boolean ok=s.startsWith("0123") // String sub= s.substring(0,2); //vrací podřetězec od indexu 0 do 2-1
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |