2015-06-09 34 views
0

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

而且有必要写“跳槽”两次打破循环,取决于如果添加的项目数为偶数或奇数...

这究竟是为什么?有任何想法吗?

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



      } 

     } 

回答

1

通过两次调用reader.next()来消耗扫描器,每次迭代两次。

尝试,而不是:

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

变化如下代码:

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

valor = reader.next(); 

与此:

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