|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Programování v jazyku Java (7) - Řetězce IIV této části si povíme o třídě StringBuffer, sloužící k ukládání často měněných řetězců, a následně ještě o konverzích mezi řetězci a dalšími typy.
Řetězce IIStringBufferJak již bylo uvedeno, třída StringBuffer se používá pro ukládání textových řetězců, které budou častěji modifikovány. Pro jejich deklaraci lze použít jeden z těch to způsobů: StringBuffer strbuf1= new StringBuffer(); //prázdný StringBuffer strbuf2= new StringBuffer("Text");//z prom.typu String StringBuffer strbuf3= new StringBuffer(80);//s kapacitou 80 znaků Rozšíření řetězce pak provést metodami: StringBuffer strbuf= new StringBuffer("text"); strbuf.append("text2"); // rozšíří řetězec strbuf.insert(1,"ret"); //vloží text za 2.znak (počítá se od 0) Metody append a insert nemusí vkládat pouze řetězec, ale i další primitivní typy (např. čísla) nebo pole znaků. Modifikace obsahu řetězce lze provádět pomocí metod replace(od, do-1 , novýtext) či setCharAt (jen jeden znak). StringBuffer strbuf= new StringBuffer("stary text"); strbuf.replace(0,5,"novy"); // změní "stary" na "novy" // nutno přičíst k pozici do +1 strbuf.setCharAt(0,'X'); //přepíše znak na pozici 0 Xkem Obsah řetězce lze i rušit pomocí metod delete(od,do-1), a deleteCharAt(index)), ta zruší jen znak na určené pozici indexu. StringBuffer strbuf= new StringBuffer("textbezKonec"); strbuf.delete(4,7);//smaž text bez(od poz. 4 do 6+1) strbuf.deleteCharAt(0); Podobně jako u třídy String lze hledat v řetězci pozici určitého podřetězce metodou indexOf a opačně načíst obsah řetězce od určité pozice metodami substring a charAt.
Při popisu inicializace byla zmíněna
Samotnou délku řetězce pak můžeme zjistit metodou length() , a změnit jí pomocí setLength(délka). V případě zvětšení je doplněna znaky null ('\u0000').
Verze 1.5 Javy doplňuje novu třídu Vstupy a výstupy
Již v první lekci jsme si ukázali způsob jak provést výstup obsahu proměnné na obrazovku pomocí metody objektu Opačný směr, tedy načtení obsahu proměnné z klávesnice lze provést pomocí tříd BufferedReader a InputStreamReader: String vstup; BufferedReader in; in = new BufferedReader(new InputStreamReader(System.in)); try{ vstup = in.readLine(); } catch(IOException e) {vstup="";} Jak je z příkladu vidět, byl vytvořen datový tok s vyrovnávací pamětí, přečte řádek ze standardního vstupu. Příkazy catch a try zajištují, v tomto případě povinné ošetření možného vzniku chybového stavu - vyjímky. Převody mezi řetězci a číslyI proto, že v minulém odstavci uvedená metoda readLine načítá a vrací pouze textové řetězce, potřebujeme prostředky pro mezi řetězcem a čísly. Celé číselné typy (byte,int,short,long) mají vestavěnou metodu parseXXX. příslušného typu: String s="777"; int i=Integer.parseInt(s);
Všechny číselné typy pak obsahují metodu String s="1.5"; float f=Float.valueOf(s);
Zpětný převod z čísla na text lze nejlépe provést pomocí metody for (int i=0;i<5;i++) System.out.println("tohle je "+ (i+1) + "."); Metoda toString
Když již byla zmíněna metoda System.out.println((new Date().toString())); Nicméně pokud program zjistí že v prováděné operaci je požadován místo předávaného objektu typ String, použije tuto metodu automaticky. Což se použije například při přiřazení do řetězce, nebo přímo výstupu v objektu out : Date dat=new Date(); String Pozdrav= "Ahoj, právě je " + dat;//připojení k řetězci System.out.println(dat); // je očekáván řetězec
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |