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();
}
}