我在使用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());
输出是斯洛文尼亚语,它是一个交易参数输入
答案 0 :(得分:3)
在致电nextInt()
后,输入缓冲区中仍有一个插入符号返回字符(' \ n')。您需要使用scanner.skip("[\r\n]+")