Java扫描器和多维数组

Java扫描器和多维数组,java,file-io,for-loop,multidimensional-array,java.util.scanner,Java,File Io,For Loop,Multidimensional Array,Java.util.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++) {

我很难弄明白为什么这不起作用。有什么想法吗

      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) {
          }
         }
试试看{
Scanner Scanner=new Scanner(新文件(“/Users/xxxxxxx/Desktop/barball_in.txt”);
字符串[][]myStringArray=新字符串[40][40];
对于(int i=0;scanner.hasNext();i++){

对于(int x=0;x您仅在每7次调用
scanner.next()
时检查
scanner
中是否有下一个元素。因此,当您连续7次调用
scanner.next()
时,
scanner
可能没有下一个元素可获取

做:

试试看{
Scanner Scanner=new Scanner(新文件(“/Users/xxxxxxx/Desktop/barball_in.txt”);
字符串[][]myStringArray=新字符串[40][40];
对于(int i=0;scanner.hasNext();i++){

对于(int x=0;x请详细说明问题所在。“这不起作用”并不能为您提供太多帮助。您到底想做什么?如果要将FileInputStream与BufferedReader一起添加到数组或集合中(我猜),为什么不使用FileInputStream和BufferedReader呢?我真的在尽可能地减少行数,Scanner似乎是最好的选择,我得到的错误是java.util.Scanner.throwFor(Scanner.java:838)java.util.Scanner.next(Scanner.java:1347)examq1.Short2.main(Short2.java:15)的“线程中的异常”java.util.NoSuchElementException我不确定这是什么means@user1750156看起来您正试图通过
scanner
获取元素,即使已经没有东西可以获取了。而且
for(int i=0;scanner.hasNext();i++)
看起来有点奇怪。最好在使用
的同时使用
。如果你能解释你想要实现的目标,我们就可以很容易地提供更好的帮助。如果你发现使用多阵列很困难。因为性能看起来并不是关键任务,你可以尝试在列表中使用列表,列表,应该更容易使用h和debug。如果你懂一点数学知识,你也可以用单个数组生成多个数组。更好的方法是使用
while(scanner.hasNext())
循环@Smit已经提到过。这是处理枚举或扫描程序的方式。当然,您需要一个变量i,它指示数组中要添加字符串的行。
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) {}