Java- 扫描器不接受输入

Java- Scanner is not taking input

在此程序中,我试图获取矩阵的行和列的总和。

这是我的代码:

import java.util.Scanner;
public class RowSum {
int xin=0, run;
int [][]mun;int[] b;int[] c;

public void inputarray(int m,int n)
{
System.out.println("Enter number");
Scanner xam=new Scanner(System.in);
run=xam.nextInt();
mun[m][n]=run;
m--;n--;
if(n!=0 && m!=0)
{
inputarray(m,n);
}
xam.close();
}
public void sum_rows_columns(int m, int n){
b[xin]=0;c[xin]=0;
b[xin]=b[xin]+mun[m][n];
c[xin]=b[xin]+mun[n][m];        
++xin;
n--; m--;
if(n!=0 && m!=0)
{
sum_rows_columns(m,n);
}
}
public void PrintSumArray(int m,int n)
{
System.out.println("sum of" + xin + "row " +b[xin]);
System.out.println("sum of" + xin + "column " +c[xin]);
n--;
m--;
if(n!=0 && m!=0){
    PrintSumArray(m,n);
}
}
}

这是主要的class

import java.util.Scanner;
public class MatrixSum {

public static void main(String[] args){
int m,n;
String S1="Enter number of rows";
String S2="Enter number of columns";
System.out.println(S1);
Scanner inpu=new Scanner(System.in);
n=inpu.nextInt();
System.out.println(S2);
Scanner inp=new Scanner(System.in);
    m=inp.nextInt();
            inp.close();
            inpu.close();
RowSum RS=new RowSum(); 
RS.inputarray(m,n);
RS.sum_rows_columns(m,n);
RS.PrintSumArray(m,n);
        }
}

我正在尝试在 运行 时间内声明数组。当我尝试 运行 它在控制台中显示以下输出:

输出:

输入行数 3个 输入列数 3个 线程异常 "main" java.lang.Error:未解决的编译问题: 扫描仪无法解析为类型 扫描仪无法解析为类型

at RowSum.inputarray(RowSum.java:10)
at MatrixSum.main(MatrixSum.java:18)

关闭

  inp.close();
  inpu.close();

在主要方法的最后。如果您之前关闭它们,也会导致 System.in 被关闭。这意味着 Scanner 无法读取任何数据并因此抛出 NoSuchElementException