Java – Sõnetöötlus ehk töötamine tekstiga (Ülesanne 4)

Muutuja tüüp char

Tekstiga töötamisel on väikseim ühik üksik märk ning selleks kasutatakse lihttüübilist muutujat char.  Täpsemalt üks märk Unicode kooditabelist ning väärtus tuleb lisada üksikute ( ‘ ) jutumärkide vahele.

Kuna Unicode baseerub ASCII‘l, saab sümboli kirja panna näiteks kümnendsüsteemi arvuna. Näiteks tähe A saamiseks tuleb kasutada arvu 65.

Ja kui on rohkem märke, siis saad hoida neid massiivis.

Erimärgid

Ühe sümboli sees saab hoida ka erimärke. Näiteks saab seal hoida tabeldusmärki, uut rida jne. Sel juhul tuleb ette lisada vasakule langkriips (backslash \).

Special charactersDisplay
\'Single quotation mark
\"Double quotation mark
\\Backslash
\tTab
\bBackspace
\rCarriage return
\fFormfeed
\nNewline

Siit tabelist on näha ka võimalust, kui soovid hoida väärtusena jutumärki. Ja täpselt samad erimärgid toimivad ka tavaliste sõnede puhul.

Mis on sõne (string)?

Tekste nimetatakse programmeerimises sõnedeks (string). See lubab ühte muutujasse topeltjutumärkide (“) vahele lisada rohkem sümboleid.

Sõne võid vaadelda ka kui märkide massiivi, mille saaks kirja panna  char[] m2rgid ={'T','e','r','e',' ','m','a','a','i','l','m','!' }; . Sõned on Javas objektid ning kuuluvad klassi java.lang.String. Ja pane tähele, et tüübi määramine algab suure algustähega.

Sõnede liitmine ja erimärgid

Kui sõnesid on vaja omavahel ühendada, siis kasutame ikka lihtsat pluss-märki (+). Erimärgid on täpselt nagu eespool juba kirjas. Näiteks on vaja kuvada meil topeltjutumärke, siis nende ette tuleb lisada langkriips.

Teksti ja arvude sisestamine

Et tekstiga edasi töötada, vaatame selles peatükis ka võimaluse, kuidas kasutajaga suhelda. Ehk kuidas saab kasutaja sisestada teksti või arve. Vaatame lihtsat näidet, kus kasutaja sisestab oma nime ja vanuse ning me reageerime sellele. Kasutajalt andmete saamiseks kasutame java.util.Scanner klassi. Selle klassi  kasutamiseks tuleb see eraldi sisse importida. Saadud kasutaja sisestus tuleb vastavasse muutujasse lisada ja selleks on meil kasutada erinevaid  meetodeid.

Arvudest arusaamiseks kasutame meetoditena nextInt(), nextFloat(), nextDouble(), nextLong() ja teksti mõistmiseks nextLine().  Välja toodud meetodid loevad iga kasutaja sisestuse lõpuni.

Sõnede vormindamine (printf)

Hetkel oleme siiani kasutanud teksti ja muutujate ühendamiseks nö “pluss meetodit”. Enamus programmeerimiskeeli võimaldavad aga meil kasutada funktsiooni printf(). See võimaldab meil kirjutada tekstimalli, kuhu sisse paigutame kohad, mis väljundis täidetakse soovitud andmetega. Pesade loomiseks kasutatakse protsendi märki (%) ja andmetüübi tähist. Näiteks “%s”.

Teksti vormindamine

Meetodi printf kasutamisel tuleb tekst lisada kindlasti topelt jutumärkide (“) vahele ning teksti pesa loomiseks kasutame “%s” märgendit. Ja pärast koma, tuleb vastavalt igale pesale määrata sisu. Kõige parem ongi seda vaadata näite abil.

Pesasid võib olla mitu ning sisu võib tulla nii muutujast kui otse – lihtsalt eralda komaga.

Täisarvude vormindamine

Täisarvude puhul, tuleb kasutada “%d” märgendit. Ning kindlasti saab ühe lauses erinevaid märgendeid korraga kasutada. Aga järjekord peab säiluma.

Pesade laius

Aeg-ajalt on soov väljundit vormindada. Näiteks loetavateks veergudeks. Sel juhul saad määrata pesa laiuse. Näiteks “%20s”, mille puhul eraldatakse tekstile 20 kohta. Kui tekst on pikem, kui sa määrasid, siis kuvatakse ikka kõik.

Nagu näha, siis eraldati tekstile kenasti 20 kohta. Aga kõik tuli ühe reana ja tekst joondatakse pesas paremale. Meetod printf pakub võimalust ka reamurdmist “%n” (sama mis “\n”) ning teksti joondamiseks paremale, tuleb kasutada miinuse märki (-).

Ujukomaarvude vormindamine

Ujukomaarvudele pesa tegemiseks kasutatakse “%f” märgendit.

Vaikimisi antakse ujukomaarvudele 10 kohta kokku (k.a. komakoht) ja seepärast kui sinu arv on väiksem, siis lisatakse sinna nullid. Sarnaselt eelmistele vormindamistele, on võimalik määrata ka siin kohtade arvu. Määrata saab kogu kohtade arvu või murdosa. Või mõlemat korraga. Lühema murdosa määramisel toimub aga ümardamine.

Sõnede töötlemine (meetodid)

Sõnede klassiga tuleb töötluseks kaasa hunnik meetodeid. Vaatame esialgu mõningaid:

  • length() – leiab märkide arvu sõnes
  • charAt() – kuvab sümboli vastavalt antud indeksile
  • substring() – võimaldab kuvada tekstist mingi osa. Kui lisad ainult ühe indeksi, siis kuvatakse alates sellest kuni lõpuni. Lisades kaks indeksit, saad määrata nii alguse kui ka lõpu.
  • indexOf() – leiab märgi või terve sõne asukoha tekstis. Lisades indeksi, saad määrata, alates mitmendast märgist otsimist alustatakse
  • toLowerCase() – muudab väiketähtedeks
  • toUpperCase() – muudab suurtähtedeks

Sõne teisendamine arvuks ja vastupidi

Sokutan siia lõppu ka arvude teisendamise. Et kui näiteks kasutaja on sisestanud isikukoodi, mis alguses on sõnena. Aga et isikukoodiga opereerida, on vaja see arvuks teisendada.

Ja nagu näitest näha, siis ujukomaarvudega tuleb sarnaselt käituda.

Ülesanne 4

  • Loo uus klassi fail ja lisa kõige ette oma nimega kommentaar
  • Luba kasutajal sisestada suvalist teksti
  • Muuda kasutaja tekst suurtähtedeks ja väljasta kogu lause
  • Väljasta kasutaja teksti märkide arv
  • Väljasta kasutaja tekstide sõnade arv
  • Väljasta kasutaja sisestatud lause esimene sõna ja kasuta teksti vormindamist ‘%s’

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Kontrolli tunnistust

Tööribale