English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Cuál es la sintaxis para pasar un objeto Scanner como parámetro en métodos de Java?

Hasta Java 1.5Antes de leer datos del usuario programador, dependía de las clases de flujo de caracteres y de bytes.

Desde Java 1.5Comienza a introducir la clase Scanner. Esta clase acepta objetos File, InputStream, Path y String, y lee tokens de todos los tipos de datos primarios y String (desde la fuente dada) uno a uno utilizando expresiones regulares.

Por defecto, los espacios en blanco se consideran delimitadores (que dividen los datos en tokens).

Leer varios tipos de datos provenientes de la fuentenextXXX()Los métodos proporcionados por esta clase son:nextInt(),nextShort(),nextFloat(),nextLong(),nextBigDecimal(),nextBigInteger(),nextLong(),nextShort(),nextDouble(),nextByte(),nextFloat(),next().

Pasar el objeto Scanner como parámetro

Puede pasar el objeto Scanner como parámetro a un método.

Ejemplo

El siguiente programa Java muestra cómo pasar un objeto Scanner a un método. Este objeto lee el contenido del archivo.

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class ScannerExample {
   public String sampleMethod(Scanner sc){
      StringBuffer sb = new StringBuffer();
      while(sc.hasNext()) {
         sb.append(sc.nextLine());
      }
      return sb.toString();
   }
   public static void main(String args[]) throws IOException {
      //Instanciar la clase inputStream
      InputStream stream = new FileInputStream("D:\\sample.txt");
      //Instanciar la clase Scanner
      Scanner sc = new Scanner(stream);
      ScannerExample obj = new ScannerExample();
      //Llamar al método
      String result = obj.sampleMethod(sc);
      System.out.println("Contenido del archivo:");
      System.out.println(result);
   }
}

Resultado de salida

Contenido del archivo:
oldtoolbag.com surgió de la idea de que existe una clase de lectores que reaccionan mejor a-línea
y prefieren aprender nuevas habilidades a su propio ritmo desde la comodidad de sus salas de dibujo.

Ejemplo

En el siguiente ejemplo, creamos un objeto Scanner con la entrada estándar (System.in) como fuente y lo pasamos como parámetro al método.

import java.io.IOException;
import java.util.Scanner;
public class ScannerExample {
   public void sampleMethod(Scanner sc){
      StringBuffer sb = new StringBuffer();
      System.out.println("Introduce tu nombre: ");
      String nombre = sc.next();
      System.out.println("Introduce tu edad: ");
      String edad = sc.next();
      System.out.println("Hola "+nombre+"eres "+edad+"años
   }
   public static void main(String args[]) throws IOException {
      //Instanciar la clase Scanner
      Scanner sc = new Scanner(System.in);
      ScannerExample obj = new ScannerExample();
      //Llamar al método
      obj.sampleMethod(sc);
   }
}

Resultado de salida

Introduce tu nombre:
Krishna
Introduce tu edad:
25
Hola Krishna, eres 25 años