{"id":629,"date":"2015-01-06T08:10:02","date_gmt":"2015-01-06T07:10:02","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=629"},"modified":"2015-04-10T12:04:28","modified_gmt":"2015-04-10T10:04:28","slug":"java-programozas-19-adatbekeres","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=629","title":{"rendered":"Java programoz\u00e1s 18. &#8211; Adatbek\u00e9r\u00e9s"},"content":{"rendered":"<h1>Adatbek\u00e9r\u00e9s, avagy k\u00e9sz\u00edts\u00fcnk interakt\u00edv programokat<\/h1>\n<p>Ahogy el\u0151re haladunk a programoz\u00e1s tanul\u00e1s\u00e1ban egyre ink\u00e1bb felmer\u00fcl az az ig\u00e9ny, hogy ne csak el\u0151re megadott adatokkal dolgozzon a program, hanem menet k\u00f6zben mi is adhassunk neki munk\u00e1t. Vagy egyszer\u0171en csak befoly\u00e1soljuk a program m\u0171k\u00f6d\u00e9s\u00e9t. Az is szempont lehet, hogy adatbek\u00e9r\u00e9ssel tesztel\u00e9sre szolg\u00e1l\u00f3 bemeneti \u00e9rt\u00e9kekkel kider\u00edthess\u00fck az esetleges szemantikai hib\u00e1kat.<\/p>\n<p>Az adatbek\u00e9r\u00e9st t\u00f6bbf\u00e9le m\u00f3don is megoldhatjuk, \u00e9n maradok az egyik egyszer\u0171, direkt erre a feladatt\u00edpusra k\u00e9sz\u00edtett oszt\u00e1ly, a Scanner haszn\u00e1lat\u00e1val. L\u00e1tni fogjuk, hogy ez rugalmasan haszn\u00e1lhat\u00f3 t\u00f6bbf\u00e9le t\u00edpus\u00fa adat bevitel\u00e9re is, \u00e9s a haszn\u00e1lata meglehet\u0151sen egyszer\u0171.<\/p>\n<p>Mivel ez a Scanner egy el\u0151re meg\u00edrt oszt\u00e1ly, a program elk\u00e9sz\u00edt\u00e9s\u00e9nek els\u0151 l\u00e9p\u00e9se import\u00e1lni azt a k\u00e9sz\u00edtend\u0151 k\u00f3dunkba, m\u00e9g a program oszt\u00e1lyainak megad\u00e1sa el\u0151tt: import java.util.Scanner;<\/p>\n<p>Ha ez megvan, ett\u0151l a pontt\u00f3l kezdve deklar\u00e1lhatunk Scanner t\u00edpus\u00fa v\u00e1ltoz\u00f3t, \u00e9s l\u00e9trehozhatunk bel\u0151le egy Scanner objektumot, ami az adatbek\u00e9r\u00e9sben seg\u00edts\u00e9g\u00fcnkre lesz. N\u00e9zz\u00fcnk akkor egy p\u00e9ldak\u00f3dot, amiben l\u00e9p\u00e9senk\u00e9nt elmagyar\u00e1zom, hogy melyik kiemelt sornak mi a szerepe.<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [1,7,9,12,14]; title: ; notranslate\" title=\"\">\r\nimport java.util.Scanner;\r\n\r\npublic class Adatbekeres\r\n{\r\n  public static void main( String&#x5B;] args )\r\n  {\r\n    Scanner sc;\r\n\r\n    sc = new Scanner(System.in);\r\n\r\n    int szam;\r\n    szam = sc.nextInt();\r\n\r\n    sc.close();\r\n\r\n    System.out.println(&quot;A bekert szam ketszerese: &quot;+szam*2);\r\n  }\r\n}\r\n<\/pre>\n<p>A l\u00e9nyegi r\u00e9szeket kiemelve n\u00e9zz\u00fck meg a program r\u00e9szeit:<\/p>\n<ol>\n<li>A k\u00f3d elej\u00e9n a Scanner oszt\u00e1ly import\u00e1l\u00e1s\u00e1val kezd\u00fcnk, mert en\u00e9lk\u00fcl nem tudjuk haszn\u00e1lni.<\/li>\n<li>Ha m\u00e1r haszn\u00e1lhatjuk, akkor l\u00e9tre kell hoznunk egy Scanner objektumot, ami majd az adatbek\u00e9r\u00e9st fogja v\u00e9grehajtani. Ez t\u00f6rt\u00e9nik meg a 7. sorban.<\/li>\n<li>A l\u00e9trehozott Scanner objektumunkat egy sc nev\u0171 v\u00e1ltoz\u00f3ban fogjuk t\u00e1rolni, \u00edgy b\u00e1rmikor egyszer\u0171en el\u00e9rhetj\u00fck. Term\u00e9szetesen m\u00e1s nevet is megadhatunk neki, de lustas\u00e1gb\u00f3l \u00e9n nem adok meg hosszabb nevet, minek annyit g\u00e9pelni \ud83d\ude42<\/li>\n<li>A Scanner oszt\u00e1lynak megh\u00edvjuk a konstruktor\u00e1t, \u00e9s odaadjuk neki a System.in bemenetet, ami alap\u00e9rtelmezetten a billenty\u0171zet. Ett\u0151l kezdve az objektumunk a billenty\u0171zetr\u0151l fogja beolvasni az \u00e1ltalunk megadott adatokat.<\/li>\n<li>A Scanner objektumnak megh\u00edvjuk a nextInt() met\u00f3dus\u00e1t, amely a beg\u00e9pelt \u00e9s Enter billenty\u0171vel lez\u00e1rt adatbevitel eset\u00e9n a beg\u00e9pelt sz\u00e1mot azonnal elt\u00e1rolja egy int t\u00edpus\u00fa v\u00e1ltoz\u00f3ba.<\/li>\n<li>Lez\u00e1rjuk a Scanner-t, miut\u00e1n m\u00e1r nincs r\u00e1 sz\u00fcks\u00e9g\u00fcnk.<\/li>\n<\/ol>\n<p>Scanner-rel t\u00f6bbf\u00e9le t\u00edpus\u00fa adatot is bek\u00e9rhet\u00fcnk. Ez csak a haszn\u00e1lt met\u00f3dust\u00f3l f\u00fcgg. P\u00e9ldak\u00e9nt \u00e1lljon itt n\u00e9h\u00e1ny \u00fagy, hogy el\u0151tte szerepeljen a v\u00e1ltoz\u00f3 is, amiben elt\u00e1roljuk a be\u00edrt adatot:<\/p>\n<ol>\n<li>String s = sc.nextLine();<\/li>\n<li>float f = sc.nextFloat();<\/li>\n<li>double d = sc.nextDouble();<\/li>\n<li>byte b = sc.nextByte();<\/li>\n<li>long l = sc.nextLong();<\/li>\n<\/ol>\n<p>A Scanner haszn\u00e1lhat\u00f3 arra is, hogy egy adatbek\u00e9r\u00e9sn\u00e9l egy adott hat\u00e1rol\u00f3 mint\u00e1t megadva darabolva k\u00e9rj\u00fcnk be valamit, mondjuk neveket sz\u00f3k\u00f6zzel elv\u00e1lasztva. Erre azonban majd a Stringek split() met\u00f3dus\u00e1t fogjuk haszn\u00e1lni, \u00edgy erre k\u00fcl\u00f6n most nem t\u00e9rn\u00e9k ki.<\/p>\n<h4>K\u00f6vetkez\u0151 lecke: <a title=\"Java programoz\u00e1s 19. \u2013 StringBuilder\" href=\"http:\/\/www.webotlet.hu\/?p=937\">StringBuilder<\/a><\/h4>\n","protected":false},"excerpt":{"rendered":"<p>Adatbek\u00e9r\u00e9s, avagy k\u00e9sz\u00edts\u00fcnk interakt\u00edv programokat Ahogy el\u0151re haladunk a programoz\u00e1s tanul\u00e1s\u00e1ban egyre ink\u00e1bb felmer\u00fcl az az ig\u00e9ny, hogy ne csak el\u0151re megadott adatokkal dolgozzon a program, hanem menet k\u00f6zben mi is adhassunk neki munk\u00e1t. Vagy egyszer\u0171en csak befoly\u00e1soljuk a program <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=629\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java programoz\u00e1s 18. &#8211; Adatbek\u00e9r\u00e9s<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[54,53,64,144,143,52],"class_list":["post-629","post","type-post","status-publish","format-standard","hentry","category-java-halado-leckek","tag-adatbekeres","tag-adatbevitel","tag-billentyuzet","tag-java_programozas","tag-programozas","tag-scanner"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=629"}],"version-history":[{"count":15,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/629\/revisions"}],"predecessor-version":[{"id":1407,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/629\/revisions\/1407"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}