2013-10-27 4 views
-1

эй, я пытаюсь взять входные данные от пользователя один за другим, но он, кажется, принимает неправильный ввод ... он фактически пропускает один вход, который нужно взять у пользователя. eg.in код ниже, я хочу взять имя первого затем обратиться и в последний контакт, но когда я делаю, так что пропустить ввод имени ...неправильный ввод Сканер

import java.util.ArrayList; 
import java.util.Scanner; 
public class mainClass { 
    public static void main(String args[]){ 

     int value = 0; 
     ArrayList<Data> Contacts = new ArrayList<Data>(); 
     Scanner input = new Scanner(System.in); 
     while(true){ 
      System.out.println("Enter 1 to add a Contact :: Enter 2 to View all Contact"); 
      value = input.nextInt(); 

      switch(value){ 

      case 1: 

       System.out.println("Plz enter Name : "); 
       String name = input.nextLine(); 
       System.out.println("Plz enter Address : "); 
       String address = input.nextLine(); 
       System.out.println("Plz enter ContactNo : "); 
       String contact = input.nextLine(); 

       Data objt1 = new Data(name, address, contact); 
       Contacts.add(objt1); 

       break; 
      case 2: 

       System.out.println("Name\t\tContact\t\tAddress"); 

       for(int i=0; i<Contacts.size(); i++) 
       { 

        System.out.println(Contacts.get(i)); 
       } 

       break; 
      default: 
       System.out.println("Sorry wrong input"); 

      } 



     } 
    } 
} 

класс данных здесь

public class Data { 

     private String name = ""; 
     private String address = ""; 
     private String cell = ""; 


     public Data(String n, String a, String c){ 

      name = n; 
      address = a; 
      cell = c; 
     } 

     public String toString() 
     { 
      return String.format("%s\t\t%s\t\t%s", name, cell, address); 
     } 
} 

ответ

0

попробуйте добавить input.nextLine(); после получения значения, это будет потреблять новый символ линии

value = input.nextInt(); 
input.nextLine(); 

(или)

int value = Integer.parseInt(input.nextLine()); 
+0

сэр, но на самом деле я хочу, чтобы взять целое число inputfirst, потому что переключатель имеет значение, ИНТ – Johnfranklien

+0

Большое спасибо сэр работает ... @uopg – Johnfranklien

Смежные вопросы