-1

嘿,我正在尝试一个一个地从用户那里获取输入,但它似乎接受了错误的输入......它实际上跳过了从用户那里获取的一个输入......例如,在下面的代码中,我想先取名字然后取地址和最后一次联系,但是当我这样做时,它会跳过名称输入...

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);
        }
}
4

1 回答 1

0

获取值后尝试添加input.nextLine();,这将消耗换行符

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

(或者)

int value = Integer.parseInt(input.nextLine());
于 2013-10-27T11:26:43.423 回答