PuhelinOhjelma. Merkkijonojen käsittely ja String-luokka.

package v5_eta;

import java.util.Scanner;

// Merkkijonojen käsittely ja String-luokka

/**
* @author ark
* @version 0.2
* @task 2-120304
*
*
*    ohjelma PuhelinOhjelma.java, joka pyytää käyttäjältä puhelinnumeron.
*    Numeron pitää olla vähintään 6 ja enintään 15 merkkiä pitkä.
*    Puhelinnumero voi alkaa +merkillä, jota seuraa maantunnus esim. Suomen
*    tunnus on 358 ja Ruotsin 46. Puhelinnumero sisältää numeroita.
*    Numeroiden välissä voi olla yksi välilyönti, esim. 9 1234 4567. Ohjelma
*    pyytää numeroa niin kauan kuin käyttäjä antaa kunnollisen.
*/

public class PuhelinOhjelma_2 {
Scanner input = new Scanner(System.in);

private void run() {
String puhelinnro;

puhelinnro = PyydaPuhelinnro();
System.out.print("Syötetty numero: " +puhelinnro);    //nron tarkistus
}

private String PyydaPuhelinnro() {
boolean tarkistusOk = false;

String puhnro;
do {
System.out.print("Anna puhelinnumerosi: ");
// puhnro = input.nextLine().trim(); // välilyöntien poisto alussa ja lopussa
puhnro = input.nextLine().replaceAll("[\\s?]","");    //välilyöntien poisto koko riviltä

tarkistusOk = TarkistaPuhnro(puhnro);
if (tarkistusOk == false) {
System.out.println("Tarkista numero ja kokeile uudelleen!");
} else
System.out.println("Nro ok!");
} while (!tarkistusOk);
return puhnro;
}

private boolean TarkistaPuhnro(String puhnro) {
boolean tarkistus = false;

// tarkistus regular expression'illa, SELITYS aka long story LONG:

// [+358|+46]     voi esiintyä +358 tai +46
// ?            kerran tai ei ollenkaan
// \\d             numero: [0-9]
// \\d{6,15}    esiintyy 6-15 numeroa

if (puhnro.matches("[+358|+46]?\\d{6,15}")) {
tarkistus = true;
}
return tarkistus;
}

public static void main(String[] args) {
PuhelinOhjelma_2 olio = new PuhelinOhjelma_2();
olio.run();
}
}

 
Advertisements

Comments are closed.

%d bloggers like this: