我有 n 行数字,都包含相同数量的数字让我们说 m,如何将它们存储在二维数组中
1 5 7 9
2 3 4 6
3 4 5 8
请注意,这里没有给出 n 和 m 的值。
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String line=br.readLine();
String [] str =line.trim().split(" ");
int n=str.length;
columns=n;
for(int i=0;i<n;i++)
{
matrix[rows][i]=Integer.parseInt(str[i]);
}
rows++;
}
运行时错误来了
运行时错误时间:0.14 内存:321088 信号:-1
最佳答案
您可以暂时将所有内容存储到 ArrayList
中,然后在最后迭代它并创建您的二维数组:
BufferedReader br = new BufferedReader("C:/YourFile.txt");
ArrayList<Integer> list = new ArrayList<Integer>();
int rows=0, cols=0;
String line;
while ((line = br.readLine()) != null) {
String [] str = line.trim().split(" ");
int n = str.length;
cols = n;
for (int i=0; i < n; ++i) {
list.add(Integer.parseInt(str[i]));
}
++rows;
}
// now create a 2D array and store everything into it
int[][] array = new array[rows][cols];
for (int i=0; i < rows; ++i) {
for (int j=0; j < cols; ++j) {
array[i][j] = list.get(i*cols+j);
}
}
关于java - 从多行解析java中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29644731/