Teen java-harjoituksia Javalassa (http://javala.cs.tut.fi) ja vastaan tuli sinänsä helppo tehtävä, jossa pitää tehdä luokalle staattinen funktio, joka tarkistaa rekisterinumeron laillisuuden (pituus 7 merkkiä ja neljäs merkki -). Seuraavassa koodissa on Javalan mielestä jotakin vikaa, mutta itse en tajua:
public static boolean isLicenseNumber(String s) { boolean tulos = true; if ( s.length() != 7 || s.charAt(3) != '-' ) { tulos = false; } return tulos; }
Sitten jos vaihtelee noita trueja ja falseja jotenkin muuten, niin sitten Javala sanoo, että kääntyy (mutta tietysti toimii väärin), mutta edellä olevalla tavalla Javala sanoo, että heittää NullPointerExceptionia.
EDIT: Niin ja mainittakoon, että kyseessä on siis Java basics -> Classes, ensimmäinen tehtävä.
Tehtävässä pitää myös varautua tilanteeseen, jossa kunnollisen merkkijonon sijasta funktiolle annetaan null-parametri.
if (s == null) ...
No niinpä tietysti. Kiitoksia.
Eikös lisäksi tulisi tutkia onko 1 - 3 merkkiä kirjaimia ja 5 - 7 numeroita? hankaluutta lisää se, että Suomessa sallitaan myös I-22 ja SI-1 tai vaikka PEN-15 oikeiksi rekkareiksi. Tätä ei kai vaadita tuossa tehtävässä.
Teuro kirjoitti:
Eikös lisäksi tulisi tutkia onko 1 - 3 merkkiä kirjaimia ja 5 - 7 numeroita? hankaluutta lisää se, että Suomessa sallitaan myös I-22 ja SI-1 tai vaikka PEN-15 oikeiksi rekkareiksi. Tätä ei kai vaadita tuossa tehtävässä.
Niin siis tehtävänannossa sanottiin, että riittää vain tarkistaa pituus ja että viiva neljäntenä.
Jepulis tuo oliki vain typerä kommentti. Älä ota tuota niin vakavasti :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.