Kayttajatunnus.java |
1 package tentti09; 2 3 /** 4 * Käyttäjätunnusgeneraattori 5 * @author vesal 6 * 7 */ 8 public class Kayttajatunnus { 9 10 /** 11 * Muuttaa kirjaimen käyttäjätunnukseen kelpaavaksi. 12 * Kirjain muutetaan pieneksi ja skandeista poistetaan pisteet. 13 * Tuntemattomat kirjaimet ja mahdolliset välimerkit korvataan 14 * 1-merkillä. 15 * @param c muutettava kirjain 16 * @return käyttäjätunnukseen kelpaava kirjain 17 * @example 18 * <pre name="test"> 19 * muutaKirjain(' ') === '1'; 20 * muutaKirjain('2') === '1'; 21 * muutaKirjain('A') === 'a'; 22 * muutaKirjain('B') === 'b'; 23 * muutaKirjain('a') === 'a'; 24 * muutaKirjain('Ä') === 'a'; 25 * muutaKirjain('Ö') === 'o'; 26 * muutaKirjain('ö') === 'o'; 27 * </pre> 28 */ 29 public static char muutaKirjain(char c) { 30 final String mitka = "åäö"; 31 final String miksi = "aao"; 32 char lc = Character.toLowerCase(c); 33 int i = mitka.indexOf(lc); 34 if ( i >= 0 ) return miksi.charAt(i); 35 if ( lc < 'a' ) return '1'; 36 if ( lc > 'z' ) return '1'; 37 return lc; 38 } 39 40 /** 41 * Aliohjelma muuttaa nimen käyttäjätunnukseksi. 42 * Käyttäjätunnus muodostetaan yhdistämällä käyttäjän 43 * etunimen ensimmäinen kirjain ja sukunimen ensimmäiset 44 * seitsemän merkkiä, jolloin käyttäjätunnuksesta tulee 8 merkkiä pitkä. 45 * Jos sukunimessä ei ole seitsemää merkkiä, sukunimi otetaan mukaan 46 * kokonaisuudessaan. 47 * Kirjaimet ä, ö ja å korvataan kirjaimilla a, o ja a. 48 * Käyttäjätunnus sisältää ainoastaan pieniä kirjaimia. 49 * @param etunimi muutettavan nimen etunimi 50 * @param sukunimi muutettvan nimen sukunimi 51 * @return nimien perusteella muodostettu käyttäjätunnus 52 * @example 53 * <pre name="test"> 54 * teeTunnus("Martta","Hänninen") === "mhannine" 55 * teeTunnus("Åke","Ek") === "aek" 56 * teeTunnus("Björn","Björnström") === "bbjornst" 57 * </pre> 58 */ 59 public static String teeTunnus(String etunimi, String sukunimi) { 60 String alku = ""; 61 if ( etunimi.length() > 0 ) alku = ""+muutaKirjain(etunimi.charAt(0)); 62 int pituus = Math.min(8-alku.length(),sukunimi.length()); 63 StringBuilder tunnus = new StringBuilder(alku); 64 for (int i=0; i<pituus; i++) 65 tunnus.append(muutaKirjain(sukunimi.charAt(i))); 66 return tunnus.toString(); 67 } 68 69 70 71 /** 72 * @param args 73 */ 74 public static void main(String[] args) { 75 // TODO Auto-generated method stub 76 77 } 78 79 } 80