Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Javalla rekisterinumeron tarkistaminen

Macro [09.01.2011 19:06:04]

#

Morjens

Päätin alkaa harjoittelemaan Javaa Javalan oppailla ja harjoituksilla. Tehtävänanto on seuraava:

Javala kirjoitti:

Toteuta annettuun luokkaan staattinen metodi onRekisteriNumero(String s), joka palauttaa true, jos annettu merkkijono on auton rekisterinumero ja false muutoin. Oikeellisuuden tarkistamiseksi riittää, että katsotaan, että:

- merkkijonon pituus on 7 JA
- merkkijonosta löytyy viivamerkki '-' indeksistä 3 (hyväksytään siis myös esim. 123-ABC)

Esimerkkejä oikeista: "ABC-123", "444-AAA"
Esimerkkejä väärästä: "313", "ABC+123"

Esimerkkisyöttö on "ABC-123", ja ohjelmani palauttaa false truen sijaan.

public static boolean onRekisteriNumero(String s) {
  boolean tulos = false;

  if(s != null && s.length() == 7 && "-".equals(s.charAt(3)))
    tulos = true;

  return tulos;
}

Missä mättää?

Metabolix [09.01.2011 19:16:57]

#

s.charAt(3) palauttaa yhden merkin (char) '-', joten se ei voi olla sama kuin teksti (string) "-". Voit joko verrata hakemaasi merkkiä merkkiin '-' yhtäsuuruusvertailulla tai hakea merkin sijaan kokonaisen tekstinpätkän funktiolla substring.

Olisit voinut selvittää asian itsekin tekemällä muutamia kokeiluja esim. seuraavasti:

System.out.println("-".equals("-")); // true
System.out.println("-".equals('-')); // false

Macro [09.01.2011 19:24:28]

#

Kiitos. En tiennytkään Javassa olevan merkitystä käyttääkö lainaus- vai heittomerkkejä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta