在java中输入字符串时出错

时间:2018-04-26 10:03:19

标签: java

我目前正在开发一个java项目。我正在制作电话簿。我使用开关来选择用户是否要输入数字或名称。问题是,当我使用开关时,它告诉用户输入数字,它工作得很好,但当我使用'选择'这使用户输入它不起作用的字符串。在运行框中,我无法输入字符串。请帮忙。这是代码。 案例1和案例3都没有工作。

$scope.foo = 3;
$scope.$eval(‘foo = 5’);
$scope.foo; // returns 5

2 个答案:

答案 0 :(得分:1)

首先,你忘了在默认情况下放置中断,但它不会影响解决你的用例。出现这种情况是因为当您使用scan.nextInt()获取输入时,其设置指针位于该特定行的末尾。所以只要养成习惯,如果你正在输入int,那么你需要立即输入字符串,然后在下一次输入之前添加额外的 scan.nextLine()

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String name = new String();
    int choice = scan.nextInt();
    switch (choice) {

        case 1:
            scan.nextLine();// changes
            System.out.println("\nWho would you like to call?");
            name = scan.nextLine();

            CallContact(name);
            break;


        case 2:
            scan.nextLine();
            System.out.println("\nWhich Contact You Want to Search?");
            name = scan.nextLine();// changes

            break;

        case 3:
            scan.nextLine();// changes
            System.out.println("\nWhich Name You Want to Save?");
            name = scan.nextLine();
            System.out.println("\nWhat is the Number of the person you want to save?");
            long number = scan.nextLong();

            SaveContact(name, number);
            break;


        default:
            break;//improve
    }

}

答案 1 :(得分:1)

始终使用scan.nextLine()接收输入,然后以所需格式转换接收的输入。

int choice = Integer.parseInt(scan.nextLine());