java Scanner每两个值读取一个

时间:2015-06-09 14:35:12

标签: java

好的,所以这段代码应该使用扫描仪(这里名为reader)读取用户的输入并将其写入文件。这里的问题是扫描仪正在读取,没有例外,每个值只有一个......所以如果用户输入" 1" ," 2"," 3" ," 4"只有" 2"和" 4"保存到文件中。 没有例外。

还有必要写"退出"两次打破循环,取决于添加的项目数是偶数还是奇数......

为什么会这样?有什么想法吗?

while (reader.hasNext()) {

            String valor = null;
            // We check for a "quit" to stop adding items to the array list..
            if (reader.next().equals("quit")){
                break;
            } else {

            valor = reader.next();

            fileManaging arxiu = new fileManaging();
            fileManaging.createFile(valor);



            }

        }

2 个答案:

答案 0 :(得分:3)

更改以下代码:

if (reader.next().equals("quit")){
            break;
        } else {

valor = reader.next();

用这个:

valor = reader.next();
if (valor.equals("quit")){
            break;
        } else {

答案 1 :(得分:1)

通过两次调用reader.next(),您每次迭代都会使用扫描程序两次。

尝试改为:

String valor = reader.next();
if (!valor.equals("quit")) {
    fileManaging arxiu = new fileManaging();
    fileManaging.createFile(valor);
}