Scanner.nextLine()控制台输入问题

时间:2014-03-23 13:36:10

标签: java input console-application

我在使用java Scanner类中的nextLine()方法时遇到了麻烦。

我需要从控制台读取整行,带空格,我不能这样做,因为先前读取的int / string以某种方式影响了行的读取,我得到一个空字符串。

我只能用next()读取一个字符串,但我需要......之间的空格

这里有一大块代码:

        String[] parametri = new String[7];

        System.out.println("Izberite vrsto transakcije:\n 1.Dobavnica \n 2.Izdajnica\n");
        parametri[0] = String.valueOf(scan.nextInt());

        System.out.print("Korisnik (id): ");
        parametri[2] = String.valueOf(scan.nextInt());
        //!!! here is the error
        System.out.print("Korisnik (ime): ");
        parametri[3] = scan.nextLine();
        //!!! and here
        System.out.print("Artikel: ");
        parametri[4] = scan.nextLine();

        System.out.print("Enota količine: ");
        parametri[5] = scan.next();

        System.out.print("Količina: ");
        parametri[6] = String.valueOf(scan.nextInt());

输出是斯洛文尼亚语,它是一个交易参数输入

1 个答案:

答案 0 :(得分:3)

在致电nextInt()后,输入缓冲区中仍有一个插入符号返回字符(' \ n')。您需要使用scanner.skip("[\r\n]+")

将其删除