Java-kielen perusteet

Samankaltaiset tiedostot
Listarakenne (ArrayList-luokka)

Java-kielen perusteet

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Merkkijonon tutkiminen matches-metodilla

Metodien tekeminen Javalla

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Merkkien ja merkkijonojen käsittelyä Javalla

Java-kielen perusteet

Java-kielen perusteita

Java-kielen perusteita

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Java-kielen perusteita

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Taulukot. Jukka Harju, Jukka Juslin

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Sisältö. 2. Taulukot. Yleistä. Yleistä

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Sisältö. 22. Taulukot. Yleistä. Yleistä

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Olio-ohjelmointi Javalla

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Mikä yhteyssuhde on?

7. Näytölle tulostaminen 7.1

Java kahdessa tunnissa. Jyry Suvilehto

Metodien tekeminen Javalla

1. Omat operaatiot 1.1

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Rajapinta (interface)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Ohjelmoinnin perusteet Y Python

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

YHTEYSSUHDE (assosiation)

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

Taulukoiden käsittely Javalla

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

16. Javan omat luokat 16.1

7. Oliot ja viitteet 7.1

Luokan muodostimet (Constructors)

Muuttujat ja kontrolli. Ville Sundberg

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

1 Tehtävän kuvaus ja analysointi

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Mitä poikkeuskäsittely tarkoittaa?

19. Olio-ohjelmointia Javalla 19.1

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Ohjelmoinnin jatkokurssi, kurssikoe

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Javan perusteita. Janne Käki

2. Olio-ohjelmoinista lyhyesti 2.1

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Ohjelmoinnin perusteet, kurssikoe

4. Olio-ohjelmoinista lyhyesti 4.1

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Luokan sisällä on lista

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Rutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit

Ehto- ja toistolauseet

7/20: Paketti kasassa ensimmäistä kertaa

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Ta

14. Poikkeukset 14.1

Tietotyypit ja operaattorit

14. Hyvä ohjelmointitapa 14.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

14. Poikkeukset 14.1

Java-kielen perusteet

public static void main (String [] args)

ITKP102 Ohjelmointi 1 (6 op)

KOHDELUOKAN MÄÄRITTELY

Ohjelmointi 2 / 2010 Välikoe / 26.3

13 Operaattoreiden ylimäärittelyjä

Harjoitus 4 (viikko 47)

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Lista luokan sisällä

Transkriptio:

Java-kielen perusteet String-merkkijonoluokka 1

Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet huomioon, eli kieliin ei sisällytetä merkkijono-perustietotyyppiä Javassakaan ei ole perustietotyyppiä merkkijonolle Sen sijaan Javassa on String luokka, joka toimii merkkijonon tietotyyppinä 2

char -merkkityyppi Yksittäinen merkki on Javassa tyyppiä char Merkkityypin muuttujan esittely: char kirjain = 'B'; Merkkityyppi on käytännössä 8-bittinen positiivinen kokonaisluku, joka tulkitaan merkiksi Merkkityypin muuttujan voi myös esittää muodossa: char kirjain = 66;, jolloin lukuarvo tulkitaan ASCII-merkistön avulla kirjaimeksi 3

ASCII-merkistö ASCII on lyhenne sanoista American Standard Code for Information Interchange ASCII-merkistö on jäänteenä kääntäjissä, muissa ohjelmissa käytetään nykyään UNICODE-merkistöä ASCII-kartta sivulla: http://www.asciitable.com 4

String -merkkijonoluokka Java API:n kirjastosta löytyy merkkijonoja käsittelevä String - luokka Tarkka polku on java.lang.string String -luokka esittää usean merkin yhdistelmää eli merkkijonoa String -luokka sisältää metodeja merkkijonon käsittelyyn 5

String merkkijonoluokka jatkuu Merkkijonomuuttujan esittely: String mjono1 = Tämä on merkkijono ; String mjono2 = null; mjono1: Tämä on merkkijono Muuttujam mjono1 viittaa String-olioon, jonka arvo on Tämä on merkkijono mjono2: Muuttuja mjono2 ei viittaa mihinkään 6

String merkkijonoluokka jatkuu String-tyyppinen muuttuja viittaa String-luokan olioon, eli muuttuja viittaa ko. olioon Olion elinkaari alkaa, kun se luodaan yleensä new-lauseella String-luokka poikkeaa tässä muista luokista: String mjono1 = Tämä on merkkijono ; On sama kuin String mjono1 = new String ( Tämä on merkkijono ); 7

String merkkijonoluokka jatkuu Esim. String eka = "Moi!"; String toka = "Moi!"; eka: Toka: Moi Moi if ( eka == toka ) System.out.println( "Lieneekö samoja? ); toka = eka; if ( eka == toka ) System.out.println( "Onko samoja? ); eka: Toka: Moi Moi 8

String merkkijonoluokka jatkuu String-luokka sisältää metodeja String-olion sisällön muokkaamiseen String-olio voi kutsua em. metodeja, jolloin merkkijono muokkaus kohdistuu ko. olion sisältöön Metodia kutsutaan siten, että muuttujan, joka viittaa String-olioon, perään kirjoitetaan piste ja sen perään metodin nimi String nimi = anna ; Esim. nimi: anna String nimi = anna ; nimi = nimi.touppercase(); Kutsutaan: viestin saanut olio nimi = nimi.touppercase(); ANNA 9

String merkkijonoluokka jatkuu Esim. String eka = "Moi!"; String toka = "Moi!"; eka: Toka: Moi Moi if ( eka.equals(toka) ) System.out.println( Onko olioiden sisältö sama? ); char c = eka.charat(0); System.out.println( Merkkijonon ensimmäinen kirjain + on + c); tulostaa: Merkkijonon ensimmäinen kirjain on M 10

String luokan metodeita public int length() Metodi palauttaa viestin saaneen olion sisällön pituuden. Esim. String mjono = "Terve!"; viestin saanut olio System.out.println (mjono.length() + " on pituus " ); tulostuu: 6 on pituus 11

String luokan metodeita jatkuu public boolean equals ( Object olio ) Metodi vertaa viestin saaneen olion sisältöä parametrina olevan olion sisältöön. Jos olioiden sisällöt ovat täsmälleen samat, paluuarvo on true. Esim. Scanner input = new Scanner (System.in); System.out.println ("haluatko jatkaa (k/e)"); String vastaus = input.next(); while ( vastaus.equals ( "k" ) ) { System.out.println ("haluatko jatkaa (k/e)"); vastaus = input.next(); } 12

String luokan metodeita jatkuu public boolean equalsignorecase(string olio); Metodi toimii kuten edellinen equals-metodi, mutta se ei erottele pieniä ja isoja kirjaimia toisistaan. Esim. Scanner input = new Scanner (System.in); System.out.println("Anna nimesi:"); String nimi = input.next(); if ( nimi.equalsignorecase("liisa") ) System.out.println("nimesi on Liisa"); else System.out.println("nimesi ei ole Liisa"); 13

String luokan metodeita jatkuu public int compareto(string olio) Metodi vertaa viestin saaneen olion sisältöä parametrina olevan olion sisältöön. Metodi palauttaa arvonaan: <0: jos viestin saaneen olion sisältö on aakkosjärjestyksessä ennen parametrina olevan olion sisältöä >0: jos parametrina olevan olion sisältö on aakkosjärjestyksessä ennen viestin saaneen olion sisältö 0: jos olioiden sisällöt ovat samat. Ohjelmointi: I. Vilpponen, I. S. S. Lahtinen 14

String luokan metodeita jatkuu public int compareto(string olio) Esim. Scanner input = new Scanner (System.in); String eka=null, toka=null; System.out.println("Anna ensimmäinen sana:"); eka = input.next(); System.out.println("Anna toinen sana:"); toka = input.next(); if (eka.compareto(toka)>= 0) else System.out.println(toka + " ja " + eka + " ovat aakosjärjestyksessä"); System.out.println(eka + " ja " + toka + " ovat aakosjärjestyksessä"); 15 Ohjelmointi: I. Vilpponen, I. S. S. Lahtinen

String luokan metodeita jatkuu public int comparetoignorecase(string olio); Metodi toimii kuten edellinen compareto-metodi, mutta se ei erottele pieniä ja isoja kirjaimia toisistaan. 16

char charat(int index) String luokan metodeita jatkuu Metodi palauttaa arvonaan kohdassa indeksi olevan merkin viestin saaneen olion sisällössä (indeksointi nollasta alkaen kohtaan merkkijono.length()-1). Esim. String mjono = "Terve!"; System.out.print (mjono.charat(0)); System.out.print (mjono.charat(1)); System.out.print (mjono.charat(2)); System.out.print (mjono.charat(3)); System.out.println(mjono.charAt(mjono.length()-1)); Tulostaa: Terv! 17 Ohjelmointi: I. Vilpponen, I. S. S. Lahtinen

String luokan metodeita jatkuu public int indexof(int merkki); public int indexof(int merkki, int alkukohta); Metodi palauttaa arvonaan parametrin merkki paikan (indeksin) viestin saaneen olion sisällössä. Mikäli kyseistä merkkiä ei ole olion sisällössä, paluuarvona on 1. Jos parametriksi annetaan alkukohta, merkkiä etsitään olion sisällöstä lähtien indeksistä alkukohta String mjono = "TerVe!"; System.out.println ( mjono.indexof ( 'V' )) ; System.out.println ( mjono.indexof ( 'e', 2 )) ; tulostuu: 3 Ohjelmointi: I. Vilpponen, I. S. S. Lahtinen 4 18

String luokan metodeita jatkuu int indexof(string str) int indexof(string str, int alkukohta) Metodi palauttaa arvonaan parametrina olevan merkkijonon (str) alkuindeksin viestin saaneen olion sisällössä. Mikäli merkkijonoa ei löydy, paluuarvona on 1. Jos parametrina annetaan alkukohta, merkkijonoa etsitään sisällöstä lähtien indeksistä alkukohta String mjono = "Terve Terve!"; System.out.println(mjono.indexOf(" Terve")); System.out.println(mjono.indexOf("Terve",1 )); tulostuu: 5 6 19

String luokan metodeita jatkuu public String trim(); Metodi palauttaa String-olion, jonka sisältö on kopio viestin saaneen olion sisällöstä siten, että kopion alusta ja lopusta on poistettu välilyönnit String tervehdys = " Moi Pate! "; tervehdys = tervehdys.trim(); System.out.println(tervehdys); Tulostuu: Moi Pate! 20

String luokan metodeita jatkuu public String substring (int alku) Metodi palauttaa String-olion, jonka sisältö on kopio viestin saaneen olion sisällön kohdasta/indeksistä alku alkaen sisällön loppuun. String hello = Moi maailma!"; hello = hello.substring (4); System.out.println( hello); Tulostuu: maailma! 21

String luokan metodeita jatkuu public String susbtring (int alku, int loppu) Metodi palauttaa String-olion, jonka sisältö on kopio viestin saaneen olion sisällön kohdasta/indeksistä alku alkaen kohtaan /indeksiin loppu-1. String hello = "Moi maailma!"; hello= hello.substring(0,3); System.out.println(hello); Tulostuu: Moi 22

String luokan metodeita jatkuu public String touppercase(); public String tolowercase(); Metodi tolowercase kopioi viestin saaneen olion sisällön uuden olion sisällöksi ja muuttaa kaikki kirjaimet pieniksi. Metodi touppercase kopioi viestin saaneen olion sisällön uuden olion sisällöksi ja muuttaa kaikki kirjaimet suuriksi. String hello = new String("Moi Maailma 2012!"); String mjono1 = hello.touppercase(); String mjono2 = hello.tolowercase(); System.out.println( mjono1 +"\n" + mjono2); tulostuu: MOI MAAILMA 2012! Ohjelmointi: I. Vilpponen, I. S. S. Lahtinen moi maailman 2012! 23

Merkkijonomuunnokset, numeerinen tieto merkkijonoksi Numeerisen tiedon muuttaminen merkkijonoksi tehdään sijoituslauseella siten, että sijoitettavassa lausekkeessa tulee olla vähintään yksi merkkijono, joka liitetään +-operaatiolla numeeriseen tietoon. String mluku; double luku = 4.56; mluku = "" + luku; System.out.println(mluku); tulostuu: 4.56 mluku = luku +" on desimaaliluku"; System.out.println(mluku); tulostuu: 4.56 on desimaaliluku 24