【问题标题】:Java Scanner and Multidimensional Arrays [closed]Java 扫描仪和多维数组 [关闭]
【发布时间】:2013-05-29 17:56:57
【问题描述】:

我很难弄清楚为什么这不起作用。有什么想法吗?

      try {
           Scanner scanner = new Scanner(new File("/Users/xxxxxxx/Desktop/baseball_in.txt"));
           String[][] myStringArray = new String [40][40];
           for (int i=0; scanner.hasNext(); i++) {
               for(int x=0; x<7; x++){
                   myStringArray[i][x] = scanner.next();
               }
           }
           System.out.println(Arrays.deepToString(myStringArray));
           scanner.close();
          } catch (FileNotFoundException e) {
          }
         }

【问题讨论】:

  • 请详细说明问题所在。 “这行不通”并不能为人们提供太多帮助。
  • 你到底想做什么?另外,如果您想将 FileInputStream 与 BufferedReader 一起使用,那么您为什么不将它逐行添加到数组或集合中(我想)?
  • 我真的想把它减少到尽可能少的行,而 Scanner 似乎是最好的选择,我得到的错误是“线程中的异常”“main”java.util.NoSuchElementException at java .util.Scanner.throwFor(Scanner.java:838) at java.util.Scanner.next(Scanner.java:1347) at Examq1.Short2.main(Short2.java:15)" 我不太确定这是什么意味着
  • @user1750156 看起来您正在尝试通过scanner 获取元素,即使没有任何东西可以获取。此外for (int i=0; scanner.hasNext(); i++) 看起来有点奇怪。最好使用while。如果您能解释您想要达到的目标,那么我们将很容易提供更好的帮助。
  • 如果发现多阵列很难使用。由于看起来性能不是关键任务,您可以尝试在列表中使用列表,List>,应该更易于使用和调试。如果你懂一点数学,你也可以用一个数组做一个多数组。

标签: java file-io for-loop multidimensional-array java.util.scanner


【解决方案1】:

每 7 次调用 scanner.next() 时,您才检查 scanner 中是否有下一个元素。因此,当您连续 7 次调用 scanner.next() 时,scanner 很可能没有下一个元素可获取。

做:

try {
       Scanner scanner = new Scanner(new File("/Users/xxxxxxx/Desktop/baseball_in.txt"));
       String[][] myStringArray = new String [40][40];
       for (int i=0; scanner.hasNext(); i++) {
           for(int x=0; x<7 && scanner.hasNext(); x++){
               myStringArray[i][x] = scanner.next();
           }
       }
       System.out.println(Arrays.deepToString(myStringArray));
       scanner.close();
} catch (FileNotFoundException e) {}

【讨论】:

  • 更好的是使用@Smit 已经提到的while(scanner.hasNext()) 循环。这就是您使用枚举或扫描仪的方式。然后,当然,您需要一个变量 i 来指示数组中要添加字符串的行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2017-10-25
  • 2015-03-19
  • 2014-06-29
相关资源
最近更新 更多