Anda di halaman 1dari 8

Entrada de datos

Scanner y JOptionPane
Entrada de datos
Clase Scanner
 El objeto especial para efectuar entrada de datos es
System.in; sin embargo, éste no ofrece métodos cómodos (es
instancia de InputStream).
 Java 5 dispone de la clase Scanner (paquete java.util) para
analizar un flujo de caracteres y obtener los elementos, de
cualquier tipo primitivo, de que consta.
La clase Scanner se encuentra en el paquete java.util por lo tanto se debe incluir al inicio
del programa la instrucción:
import java.util.Scanner;

Para utilizar esa clase tenemos que crear primero un objeto de ella
para poder invocar sus métodos.
Scanner teclado = new Scanner(System.in);

/* Esto lo podríamos omitir y solo saber nosotros en caso de que el profesor


pregunte
El propósito de pasar a System.in como argumento es conectar o establecer
una relación entre el objeto tipo Scanner, con nombre teclado en la
declaración anterior, y el objeto System.in, que representa el sistema
estándar de entrada de información en Java. Si no se indica lo contrario, el
teclado es, por omisión, el sistema estándar de entrada de información en
Java.
*/
Funcionamiento de la Clase Scanner
• Cuando se introducen caracteres por teclado, el objeto Scanner toma toda la
cadena introducida y la divide en elementos llamados tokens
• El carácter predeterminado que sirve de separador de tokens es el espacio en
blanco
• Ejemplo
Si introducimos la cadena:
109 20.001 FISI w
Los tokens que se crean son:
109
20.001
FISI
w
Métodos de la clase Scanner
• Los métodos más interesantes son:
Tipo nextTipo(); obtiene el siguiente valor de tipo
primitivo Tipo.
boolean hasNextTipo(); true si el siguiente elemento es de
tipo primitivo Tipo
Métodos de la clase Scanner
Método Descripción
nextTipo() Devuelve el siguiente token como un tipo básico.Por ejemplo, nextInt() para
leer un entero, nextDouble para leer un double, etc.
next() Devuelve el siguiente token como un String.
nextLine() Devuelve la línea entera como un String. Elimina el final \n del buffer
hasNext() Devuelve un boolean. Indica si existe o no un siguiente token para leer.
hasNextTipo() Devuelve un boolean. Indica si existe o no un siguiente token del tipo
especificado en Tipo, por ejemplo hasNextDouble()
useDelimiter(String) Establece un nuevo delimitador de token.
Usos de los métodos de la forma nextTipo()
import java.util.Scanner;
public class EjemploScanner{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("Nombre: ");
String nm = sc.nextLine();
System.out.println("edad y peso: ");
int edad = sc.nextInt();
double peso = sc.nextDouble();
System.out.println("Hola: " nm + ", tu edad es: " + edad + ",
pesas: " + peso );
}
}
Usos de los métodos de la forma
hasNextTipo()
import java.util.Scanner;
public class EjemploScanner{
public static void main(String [] args){
// Definimos una ArrayList
List<String> list = new ArrayList<String>();
// Añadimos elementos
list.add("Andrea");
list.add("Amaya");
list.add("Julio");
// Obtenemos un Iterador y recorremos la lista.
Iterator iter = list.iterator();
while (iter.hasNext()){
System.out.println(iter.next());
}
}
}

Anda mungkin juga menyukai