Java fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.0 KiB

"Auton rekisteritunnus koostuu 2–3 kirjaimen ja enintään kolminumeroisen luvun yhdistelmästä. Kirjain- ja lukusarja on erotettu toisistaan väliviivalla." - Liikenteen turvallisuusvirasto (Traficom)

Kirjoita ohjelma RekisterinumeroTarkastin.java, joka kysyy käyttäjältä autojen rekisterinumeroita, ja kertoo, onko annettu rekisterinumero kelvollinen. Rekisterinumerot tulee voida antaa kirjainkoosta riippumatta, eli joko isoilla tai pienillä kirjaimilla. Kirjaimet saavat koostua ainoastaan suomenkielisistä aakkosista.

Rekisterinumeroiden kysyminen tulee lopettaa ja ohjelman suorituksen tulee päättyä, kun käyttäjä syöttää ainoastaan "q"-kirjaimen.

Tehtävä on ratkaistava käyttäen säännöllistä lauseketta ja String-luokan matches-metodia.

Example output:
Syötä rekisterinumero (q-kirjain lopettaa): JAV-4
JAV-4 on kelvollinen rekisterinumero.
Syötä rekisterinumero (q-kirjain lopettaa): AB-C12
AB-C12 ei ole kelvollinen rekisterinumero.
Syötä rekisterinumero (q-kirjain lopettaa): ABC-12 AB-3
ABC-12 AB-3 ei ole kelvollinen rekisterinumero.
Syötä rekisterinumero (q-kirjain lopettaa): q

RekisterinumeroTarkastin.java

import java.util.Scanner;
public class RekisterinumeroTarkastin {
public static void main(String[] args) {
Scanner syote = new Scanner(System.in);
while (true) {
System.out.print("Syötä rekisterinumero (q-kirjain lopettaa): ");
String rekisteriNro = syote.nextLine();
// No need for [a-zA-Z] regex
rekisteriNro = rekisteriNro.toUpperCase();
if (rekisteriNro.equals("Q")) {
break;
}
if (!rekisteriNro.matches("^[A-ZÅÄÖ]{2,3}-[0-9]{1,3}$")) {
System.out.printf("%s ei ole kelvollinen rekisterinumero.\n", rekisteriNro);
} else {
System.out.printf("%s on kelvollinen rekisterinumero.\n", rekisteriNro);
}
}
}
}