Hola gente, soy nuevo por acá y estoy iniciándome en el mundo de la programación, estoy haciendo un pequeño programita que consiste en simular una agenda de contactos, tengo las clases creadas y el menu, al momento de ingresar un contacto este lo hace sin problemas pero cuando quiero eliminar o mostrar los datos que contiene cada objeto del array list me está dando problemas, por ej el metodo mostrar, solamente me muestra el numero y no el nombre y el metodo eliminar arroja un error "Exception in thread "main" java.util.InputMismatchException", agradecería que revisaran lo que llevo hecho y me hagan saber que esta mal.
//clase persona
public class Persona
{
private String nombre;
private int numero;
public Persona()
{
nombre = "";
numero = 0;
}
public Persona(String nombre, int numero)
{
this.nombre = nombre;
this.numero = numero;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getNombre() {
return nombre;
}
public int getNumero() {
return numero;
}
public String toString()
{
String dato;
dato = "\nNombre: "+getNombre()+
"\nFono: "+getNumero();
return dato;
}
//clase lista de contactos, que contiene un arrayList de tipo Persona
import java.util.*;
public class ListaDeContactos
{
ArrayList<Persona> lista = new ArrayList<Persona>();
public void agregarContacto(Persona contacto)
{
lista.add(contacto);
}
public void eliminarContacto(String nombre)
{
for(int i = 0;i<lista.size();i++)
{
if(lista.get(i).getNombre().contains(nombre))
{
lista.remove(i);
}
}
}
public void mostrarContactos()
{
for(int i = 0; i<lista.size();i++)
{
System.out.println("Nombre: "+lista.get(i).getNombre());
System.out.println("Telefono: "+lista.get(i).getNumero());
}
}
}
//finalmente la clase principal que contiene mi menu
import java.util.*;
public class Agenda {
public static Scanner scn = new Scanner(System.in);
public static ListaDeContactos listado = new ListaDeContactos();
public static void main(String[] args)
{
int opc;
do{
System.out.println("1.- Agregar contacto");
System.out.println("2- Eliminar contacto");
System.out.println("3.- Mostrar contactos");
System.out.println("4.- Salir");
opc = scn.nextInt();
switch(opc)
{
case 1:
agregar();
break;
case 2:
eliminar();
break;
case 3:
mostrar();
break;
case 4:
System.out.println("Hasta luego");
}
}while(opc!=3);
}
public static void agregar()
{
System.out.println("Ingrese nombre");
String nombre = scn.nextLine();
scn.nextLine();
System.out.println("Ingrese numero");
int numero = scn.nextInt();
Persona cto = new Persona(nombre,numero);
listado.agregarContacto(cto);
}
public static void eliminar()
{
System.out.println("Ingrese nombre a borrar");
String nombre = scn.nextLine();
listado.eliminarContacto(nombre);
}
public static void mostrar()
{
listado.mostrarContactos();
}
}