Peruskoulu. Merkkijonojen käsittely ja String-luokka.

package v5_eta;

import java.util.Scanner;

// Merkkijonojen käsittely ja String-luokka

/**
* @author ark
* @version 0.16
* @task 3-120305
*
*
*       Eräässä peruskoulussa on luokat 3-9. Jokaisella luokka-asteella on
*       neljä rinnakkaisluokkaa A-D. Luokkien luokkatunnukset ovat muotoa 3A,
*       4D jne. Tee ohjelma Peruskoulu.java, joka pyytää luokkatunnuksia,
*       kunnes käyttäjä antaa luokkatunnukseksi merkkijonon ”loppu”. Ohjelma
*       ilmoittaa jokaisen tunnuksen kohdalla, onko tunnus ok vai virheellinen.
*       Ohjelman tulee hyväksyä mahdollisuus antaa kirjain myös pienenä.
*       Huomioi, että käyttäjä voi kirjoittaa tunnuksen alkuun ja loppuun
*       välilyöntejä. Tällainen tunnus on virheetön.
*/

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

private void run() {

String luokkatunnus = "";
while (!luokkatunnus.equals("loppu")) {
luokkatunnus = PyydaLuokkaTunnus();
}
}

private String PyydaLuokkaTunnus() {
String tunnus = "";
boolean onkOk = false;

while (!onkOk &&!tunnus.equalsIgnoreCase("loppu")) {
System.out.print("Anna luokkatunnus (3A, 7B -muotoa): ");
tunnus = input.nextLine();
tunnus = MuotoileTunnus(tunnus); // poistetaan välilyönnit ja ->
// LowerCase

if (!tunnus.equalsIgnoreCase("loppu")) {
onkOk = TarkistaTunnus(tunnus);
if (onkOk == true)
System.out.println("Tunnus ok");
else
System.out.println("Virheellinen tunnus!");
} else
System.out.println("Ohjelma lopetettu.");
}
return tunnus;
}

private String MuotoileTunnus(String tunnus) {
String muokattu = tunnus.trim().toLowerCase();
return muokattu;
}

private boolean TarkistaTunnus(String tunnus) {
// luokat 3-9
// neljä rinnakkaisluokkaa A-D
boolean onkoOk = false;
if (tunnus.matches("[3-9][a,b,c,d]")) {
onkoOk = true;
}
return onkoOk;
}

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

 
Advertisements

Comments are closed.

%d bloggers like this: