{"id":71,"date":"2026-10-01T17:53:02","date_gmt":"2026-10-01T17:53:02","guid":{"rendered":"https:\/\/java.nosoyia.es\/?page_id=71"},"modified":"2026-10-01T17:53:02","modified_gmt":"2026-10-01T17:53:02","slug":"la-clase-scanner","status":"publish","type":"page","link":"https:\/\/java.nosoyia.es\/?page_id=71","title":{"rendered":"La clase Scanner"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#a1f6ed;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Correspondencia en Python &#8212;&gt;<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/python.nosoyia.es\/input\/\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"56\" src=\"https:\/\/java.nosoyia.es\/wp-content\/uploads\/2026\/06\/Flor.jpg\" alt=\"\" class=\"wp-image-44\" title=\"input ( )\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para que el usuario pueda introducir datos a trav\u00e9s de la consola, Java dispone de la clase \u00abScanner\u00bb.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import java.util.Scanner;\npublic class Entrada {\n    public static void main(String[] args) {\n        System.out.print(&quot;Dime como te llamas: &quot;);\n        Scanner mi_scanner = new Scanner(System.in);\n        String nombre = mi_scanner.nextLine();\n        System.out.print(&quot;Hola &quot;+nombre+&quot; \u00bfCu\u00e1ntos a\u00f1os tienes?: &quot;);\n        int edad=mi_scanner.nextInt();\n        System.out.print(&quot;\\&quot;\u00a1Bienvenido &quot;+nombre+&quot;. \u00a1Me alegro de verte por aqu\u00ed!&quot;);\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Un posible ejemplo de ejecuci\u00f3n:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>Dime como te llamas: Eduardo\nHola Eduardo \u00bfCu\u00e1ntos a\u00f1os tienes?: 60\n&quot;\u00a1Bienvenido Eduardo. \u00a1Me alegro de verte por aqu\u00ed!<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para poder usar la clase Scanner debemos de ejecutar al inicio del c\u00f3digo la instrucci\u00f3n \u00abimport java.util.Scanner;\u00bb <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero debemos declarar un objeto que pertenezca a la clase Scanner. En este caso se ha llamado a dicho objeto \u00abmi_scanner\u00bb.  La sintaxis para declarar este objeto es \u00abnew Scanner(System.in)\u00bb. A continuaci\u00f3n utilizando este objeto, se solicita al usuario un tipo determinado de dato, por ejemplo \u00abString nombre = mi_scanner.nextLine( )\u00bb ; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta clase admite diferentes formatos de uso. Seg\u00fan que se espere un tipo de dato u otro, el m\u00e9todo a usar es diferente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nombre_scanner.next ( ) : Espera una palabra.<\/li>\n\n\n\n<li>nombre_scanner.nextLine ( ) : Espera una l\u00ednea completa de texto.<\/li>\n\n\n\n<li>nombre_scanner.nextInt ( ) : Espera un dato de tipo entero.<\/li>\n\n\n\n<li>nombre_scanner.nextDouble ( ) : Espera un dato decimal.<\/li>\n\n\n\n<li>nombre_scanner.Boolean ( ) : Espera un dato Booleano.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si utilizamos alguno de estos m\u00e9todos, pero introducimos un dato de otro tipo diferente, la ejecuci\u00f3n del programa dar\u00e1 error. La forma de solucinar este problema es capturar y gestionar este posible error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debemos de tener en cuenta adem\u00e1s un detalle muy importante. Cuando ejecutamos scanner.nextInt (u otro que no sea .nextLine), el flujo de programa va a tomar el dato que necesita (un entero o un double) y <strong><em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f03c05\" class=\"has-inline-color\">va a guardar en el buffer de entrada el Return <\/mark><\/em><\/strong>que le hemos dado. Si luego llamamos a scanner.nextLine, el buffer restante (que ser\u00e1 el Return) <strong><em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ea4310\" class=\"has-inline-color\">se le va a asignar a  scanner.nextLine directamente<\/mark><\/em><\/strong>, lo cual nos llevar\u00e1 a resultados incorrectos.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import java.util.Scanner;\npublic class Entrada {\n    public static void main(String[] args) {\n\n        Scanner mi_scanner = new Scanner(System.in);\n\n        System.out.print(&quot;\u00bfCu\u00e1ntos a\u00f1os tienes?: &quot;);\n        int edad=mi_scanner.nextInt();\n\n        System.out.print(&quot;Dime como te llamas: &quot;);\n        String nombre = mi_scanner.nextLine();\n\n        System.out.println(&quot;Bienvenido &quot;+nombre+&quot;. Tienes &quot;+edad+&quot; a\u00f1os.&quot;);\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>Resultado:\n\n\u00bfCu\u00e1ntos a\u00f1os tienes?: 35\nDime como te llamas: Bienvenido . Tienes 35 a\u00f1os.<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n puede ser a\u00f1adir un scanner.nextLine que nos recoja la basura (el Return) de la instrucci\u00f3n anterior:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import java.util.Scanner;\npublic class Entrada {\n    public static void main(String[] args) {\n\n        Scanner mi_scanner = new Scanner(System.in);\n\n        System.out.print(&quot;\u00bfCu\u00e1ntos a\u00f1os tienes?: &quot;);\n        int edad=mi_scanner.nextInt();\n\n        String basura=mi_scanner.nextLine();\n\n        System.out.print(&quot;Dime como te llamas: &quot;);\n        String nombre = mi_scanner.nextLine();\n\n        System.out.println(&quot;Bienvenido &quot;+nombre+&quot;. Tienes &quot;+edad+&quot; a\u00f1os.&quot;);\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>Resultado:\n\n\u00bfCu\u00e1ntos a\u00f1os tienes?: 35\nDime como te llamas: Eduardo\nBienvenido Eduardo. Tienes 35 a\u00f1os.<\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-table tabla-colores has-large-font-size\"><table class=\"has-fixed-layout\"><tbody><tr><td><a href=\"https:\/\/java.nosoyia.es\/\">Inicio<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=52\">Comandos Java<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=30\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=30\">Bloques de c\u00f3digo.<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=34\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=34\">Comentar c\u00f3digo<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=18\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=18\">System.out.print<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=71\" data-type=\"page\" data-id=\"71\">Scanner (System.in)<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=81\">Captura de errores<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=91\">String<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=114\">Datos  Num\u00e9ricos<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=124\">Elementos aleatorios<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=136\">Datos Fecha\/hora<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=150\">Constantes<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=157\">Bucles for<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=167\">Bucles while<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=177\">Bloque if<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=190\">Arrays<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=199\">ArrayList<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=227\">switch case<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=236\">HashSet<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=250\">HashMap<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=261\">M\u00e9todos.<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=270\">Clases<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=280\">Archivos<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=299\" data-type=\"page\" data-id=\"270\">Entorno gr\u00e1fico Swing<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=307\">JFrame (Ventanas)<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=321\">Componentes b\u00e1sicos.<\/a><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Correspondencia en Python &#8212;&gt; Para que el usuario pueda introducir datos a trav\u00e9s de la consola, Java dispone de la clase \u00abScanner\u00bb. Un posible ejemplo de ejecuci\u00f3n: Para poder usar la clase Scanner debemos de ejecutar al inicio del c\u00f3digo la instrucci\u00f3n \u00abimport java.util.Scanner;\u00bb Primero debemos declarar un objeto que pertenezca a la clase Scanner. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-71","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":7,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/71\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/71\/revisions\/297"}],"wp:attachment":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}