SisaltaaTarkistaja.java |
1 package kanta; 2 3 /** 4 * Tarkistaja joka tarkistaa että jono sisältää vain valittuja merkkejä. 5 * Hyväksyy tyhjän jonon. 6 * @author vesal 7 * 8 */ 9 public class SisaltaaTarkistaja implements Tarkistaja { 10 11 /** Numeroita vastaavat kirjaimet */ 12 public static final String NUMEROT = "0123456789"; 13 14 /** Desimaalilukuun käyvät kirjaimet */ 15 public static final String DESIMAALINUMEROT = "0123456789.,"; 16 17 /** 18 * Onko jonossa vain sallittuja merkkejä 19 * @param jono tutkittava jono 20 * @param sallitut merkit joita sallitaan 21 * @return true jos vain sallittuja, false muuten 22 * @example 23 * <pre name="test"> 24 * onkoVain("123","12") === false; 25 * onkoVain("123","1234") === true; 26 * onkoVain("","1234") === true; 27 * </pre> 28 */ 29 public static boolean onkoVain(String jono, String sallitut) { 30 for (int i=0; i<jono.length(); i++) 31 if ( sallitut.indexOf(jono.charAt(i)) < 0 ) return false; 32 return true; 33 } 34 35 36 private final String sallitut; 37 38 39 /** 40 * Luodaan tarkistaja joka hyväksyy sallitut merkit 41 * @param sallitut hyväksyttävät merkit 42 */ 43 public SisaltaaTarkistaja(String sallitut) { 44 this.sallitut = sallitut; 45 } 46 47 48 /** 49 * Tarkistaa että jono sisältää vain valittuja numeroita 50 * @param jono tutkittava jono 51 * @return null jos vain valittujan merkkejä, muuten virheilmoitus 52 * @example 53 * <pre name="test"> 54 * SisaltaaTarkistaja tar = new SisaltaaTarkistaja("123"); 55 * tar.tarkista("12") === null; 56 * tar.tarkista("14") === "Saa olla vain merkkejä: 123"; 57 * tar.tarkista("") === null; 58 * </pre> 59 */ 60 @Override 61 public String tarkista(String jono) { 62 if ( onkoVain(jono, sallitut) ) return null; 63 return "Saa olla vain merkkejä: " + sallitut; 64 } 65 66 } 67