Onko se int

Pirjo Karjalainen

Terve!

Millähän keinolla saisi tietää onko käyttäjän antama syöte (scanner) muotoa int?

Kiitos.

5

627

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ihmettä tarkoitat?

      Tarkoitatko:

      1) Skannattujen kuvien OCR-prosessointia?
      2) scanf-perheen funktiota?

      Jos ongelma on Xscanf (fscanf, sscanf, jne.), lue tuntematon merkkijonona, ja sen jälkeen tutki onko ensimmäinen merkki '-', jos on, lisää pointteria joka osoittaa merkkijonoon yhdellä. scanf-funktioita ei tietenkään näe juuri koskaan missään hyvin toteutetussa ohjelmistossa, ilmiselvistä syistä.

      #include
      #include

      int check_number(char * str)
      {
      /* onko ensimmäinen merkki miinus */
      if(*str =='-') str ;
      do
      {
      if(!isdigit(*str)) return 0;
      }
      while(* str);
      return 1;
      }

      int check_int(char * str)
      {
      /* tarkastetaan onko numero esitettävissä int-muodossa */
      int number;
      char buf[20];
      number = atoi(str);
      sprintf(buf, "%d", number);
      if(strcmp(buf, str)==0)
      return 1;
      return 0;
      }

      int main(void)
      {
      int i;
      char *test[] = {"", "-123", "-", "a", "100", "12312312382131232"};
      char *test2[] = {"blah 123 bleh", "blah - bleh", "abc -200 aaa"};
      char buf[50];

      for(i=0; i

      • luulin aiheen olevan C:tä

        kylläpäs nyt sattuikin... en jaksa samaa javana. Vinkki - Exception.


    • keksa

      käytä Integer-luokan metodeja

      muistaakseni

      try
      {
      int luku = Integer.valueOf( syöte ).intValue()
      }
      catch (exception e)
      {
      //eipä ollu perkema!
      }

    • tietoa
    • Esimerkkejä

      --- ESIMERKKI ALKAA ---

      import java.util.Scanner;

      public class Esimerkki {
         
         public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            
            if (scan.hasNextInt())
               System.out.println("Syöte on int: " scan.nextInt());
            else
               System.out.println("Syöte ei ole muotoa int");
         }
      }

      --- ESIMERKKI LOPPUU ---



      --- ESIMERKKI ALKAA ---

      import java.util.InputMismatchException;
      import java.util.Scanner;

      public class Esimerkki {
         
         public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);

            try {
               int numero = scan.nextInt();
               
               System.out.println("Syöte on int: " numero);
            } catch(InputMismatchException e) {
               System.out.println("Syöte ei ole muotoa int");         
            }
         }
      }

      --- ESIMERKKI LOPPUU ---



      --- ESIMERKKI ALKAA ---

      import java.util.Scanner;

      public class Esimerkki {
         
         public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);

            String jono = scan.next();
            
            try {
               int numero = Integer.parseInt(jono);
               
               System.out.println("Syöte on int: " numero);
            } catch(NumberFormatException e) {
               System.out.println("Syöte ei ole muotoa int");         
            }
         }
      }

      --- ESIMERKKI LOPPUU ---

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5254
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      25
      4408
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      28
      2561
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2264
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      2008
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      1938
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1617
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1541
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      21
      1277
    10. Kerranki asiat oikein

      Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa
      Haapavesi
      10
      1194
    Aihe