Java 如何使用二维数组解决问题

Java 如何使用二维数组解决问题,java,arrays,Java,Arrays,嘿,我想为一个朋友写一个程序来管理他的交易卡,但在写二维数组时遇到了问题。[0][0]和[0][1]被正确保存和处理,但在循环的第二次迭代中,它给出了以下错误代码: ***Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Scanner.java:937) at java.base/java.util.Scanner.next(Scanner.ja

嘿,我想为一个朋友写一个程序来管理他的交易卡,但在写二维数组时遇到了问题。[0][0]和[0][1]被正确保存和处理,但在循环的第二次迭代中,它给出了以下错误代码:

***Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at benni/benni.Main.main(Main.java:13)***


package benni;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;

public class Main {
public static void main(String[] args) {    
    String[][] inventory = new String[1000][2];     
    for(int i=0;i<999;i++) {    
        try (Scanner inp = new Scanner(System.in)) {
            String cn = inp.next(); 
            System.out.println("Cardname: "+cn);
            inventory[i][0]=cn;
            int fq = inp.nextInt();
            String fq2 = Integer.toString(fq);
            inventory[i][1]=fq2;
            System.out.println("Frequency: "+fq2);          
        }               
    }
}

您需要注意.nextInt,因为它不使用换行符。您应该始终在之后调用.nextLine来使用换行符

如果您知道您的输入是完美的,那么这是有效的:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;

public class Test {
    public static void main(String[] args) {    
        String[][] inventory = new String[1000][2];     

        Scanner inp = new Scanner(System.in);

        for(int i=0;i<999;i++) {    
            String cn = inp.nextLine(); 
            System.out.println("Cardname: "+cn);
            inventory[i][0]=cn;
            int fq = inp.nextInt();
            inp.nextLine();
            String fq2 = Integer.toString(fq);
            inventory[i][1]=fq2;
            System.out.println("Frequency: "+fq2);          
        }
    }
}

但是,在获取频率时,您应该考虑处理潜在的输入不匹配异常。

您真的想制作1000次新扫描仪吗?