Merkkijonon tutkiminen matches-metodilla



Samankaltaiset tiedostot
Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

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

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

Java-kielen perusteita

Merkkien ja merkkijonojen käsittelyä Javalla

Java-kielen perusteet

Listarakenne (ArrayList-luokka)

17. Javan omat luokat 17.1

Metodien tekeminen Javalla

20. Javan omat luokat 20.1

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

Java-kielen perusteet

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

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

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

Ohjelmoinnin perusteet Y Python

Algoritmit 1. Demot Timo Männikkö

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

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

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

Ohjelmoinnin perusteet Y Python

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

Ohjelmointiharjoituksia Arduino-ympäristössä

Mikä yhteyssuhde on?

ITKP102 Ohjelmointi 1 (6 op)

Algoritmit 1. Demot Timo Männikkö

Olio-ohjelmointi Javalla

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Ohjelmoinnin perusteet Y Python

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

13. Loogiset operaatiot 13.1

11. Javan valintarakenteet 11.1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

13. Hyvä ohjelmointitapa (osa 1) 13.1

13. Loogiset operaatiot 13.1

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet Y Python

Metodien tekeminen Javalla

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin peruskurssi Y1

YHTEYSSUHDE (assosiation)

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

Algoritmit 2. Demot Timo Männikkö

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Periytyminen (inheritance)

Java-kielen perusteita

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ehto- ja toistolauseet

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Luokan sisällä on lista

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Mitä poikkeuskäsittely tarkoittaa?

Ohjelmoinnin perusteet Y Python

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

7. Näytölle tulostaminen 7.1

Luokan muodostimet (Constructors)

Ohjelmoinnin perusteet Y Python

21. oppitunti. Esikäsittelijä. Osa. Esikäsittelijä ja kääntäjä

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Ohjelmoinnin perusteet Y Python

14. Hyvä ohjelmointitapa 14.1

Ohjelmoinnin perusteet Y Python

12 Mallit (Templates)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Python-ohjelmointi Harjoitus 5

Harjoitus 4 (viikko 47)

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet, kurssikoe

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

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

Kielioppia: toisin kuin Javassa

Ohjelmoinnin peruskurssi Y1

7. Oliot ja viitteet 7.1

Ohjelmoinnin perusteet Y Python

HARJOITUKSIA ios-ohjelmointiin LIITTYEN

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

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

Lista luokan sisällä

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmoinnin perusteet Y Python

Rakenteisen ohjelmoinnin harjoitustyö

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Transkriptio:

Merkkijonon tutkiminen matches-metodilla String-luokkaan on määritelty seuraava metodi: public boolean matches(string regular_expression)

Mihin käytetään String-luokan metodia public boolean matches(string regular_expression)? Voidaan vertailla onko merkkijono tietyn tyyppinen eli sisältääkö se tiettyjä merkkejä, onko merkkejä tarpeeksi jne. Vertailu palauttaa boolean arvon true tai false Merkkijono vertailuun voi tehdä monimutkaisiakin tarkistuksia: Onko käyttäjän antamassa sähköpostiosoitteen alussa kirjaimia ja/tai numeroita, @-merkki, lisää kirjaimia ja/tai numeroita, piste ja 2 tai 3 kirjainta? Sisältääkö käyttäjän antama puhelinnumero vain numeroita ja mahdollisesti numeroiden edessä voi olla +?

Vertailussa tietyt merkit: X merkki kirjoitetaan sellaisenaan \\ tarkoittaa yksi kenoviiva (\) Esim. String mjono = "kissa3"; if (mjono.matches("kissa3")) System.out.println(mjono); Vertailussa merkkijoukot: [abc] [^abc] [a-za-z] [a-d[m-p]] ] [a-z&&[def]] [a-z&&[^bc]] [a-z&&[^m-p]] merkit a, b tai c kaikki muut merkit paitsi a, b eikä c kaikki merkit välillä a-z tai A-Z kaikki merkit välillä a-d tai m-p merkkien a-z ja def leikkaus kaikki merkit välillä a-z paitsi b ja c kaikki merkit välillä a-z paitsi merkit välillä m-p

Esim. Käyttäjän antama merkkijonon pitää alkaa k:lla sitä pitää seurata jokin seuraavista kirjaimista a,b,c,d,e,f,g,h,i, jonka jälkeen pitää olla vielä merkkijono ssa, jota seuraa merkki 1, 2 tai 3: System.out.println("Anna sana:"); mjono = input.next(); input.nextline(); if (mjono.matches("k[a-i]ssa[1-3]")) System.out.println(mjono); else System.out.println(mjono + " ei noudata tyyppiä k[a-i]ssa[1-3]");

Vertailussa valmiit merkkijoukot:. Mikä tahansa merkki paitsi rivinvaihtomerkki \d numero: [0-9] \D Ei numero: [^0-9] \s Tyhjä merkki: [ \t\n\x0b\f\r] \S Ei tyhjämerkki: [^\s] \w Sanan merkki: [a-za-z_0-9] \W Ei sanan merkki: [^\w] Esim. Sisältääkö merkkijono vain numeron? String mluku = "6"; if (mluku.matches("\\d")) System.out.println(mluku + " YES"); else System.out.println(mluku + " NO");

Vertailussa merkkien lukumäärät mukana: X? Merkki voi esiintyvä kerran tai ei ollenkaan X* Merkki voi esiintyvä useasti tai ei ollenkaan X+ Merkki voi esiintyvä useasti tai vain kerran X{n} Merkin pitää esiintyä täsmälleen n kertaa X{n,} Merkin pitää esiintyä vähintään n kertaa X{n,m} Merkki voi esiintyvä vähintään n kertaa mutta enintään m kertaa Esim. käyttäjä antaa puhelinnumeron, se voi alkaa + merkillä, muut merkit tulee olla numeroita, numeron pituus pitää olla väliltä 7-15 System.out.println("Anna puhelinnumero:"); String puh = input.next(); if (puh.matches("[+]?\\d{7,15}")) System.out.println(puh + " YES"); else System.out.println(puh + " NO");

Harjoitus: Tee ohjelma joka pyytää henkilön email-osoitteen niin kauan kunnes käyttäjä antaa kunnollisen sähköpostiosoitteen. Käyttäjä voi antaa suuriakin kirjaimia, jotka ohjelma muuttaa pieniksi. Sähköpostiosoite voi sisältää sekä numeroita (0-9) ja kirjaimia (a-z) mutta ei välilyöntejä. Sähköpostiosoitteen muodostuu kahdesta osasta nimi ja domain, joiden välissä on @-merkki. Nimi voi noudattaa jompaakumpaa seuraavista muodoista: - etunimi.sukunimi -- etunimen/sukunimen minimipituus on 1 ja maksimipituus 20 - nimi - nimen minimi pituus on 1 ja maksimipituus on 20 Domainin täytyy noudattaa seuraavaa muotoa: yritys.maa yrityksen minimipituus on 2 maksimipituus on 20 ja maan minimipituus on 2 ja maksimipituus on 4