Java 从由数字组成的字符串中逐个提取每个数字

Java 从由数字组成的字符串中逐个提取每个数字,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有一个文件,这个文件有x*y数字,比如12行21列 从一个外部文件,它是这样的 BufferedReader jack = new BufferedReader(new FileReader("/root/Desktop/woop.txt"), 32768); //StringBuilder comfy = new StringBuilder(); String line = null; while ((jack.readLine())

我有一个文件,这个文件有x*y数字,比如12行21列 从一个外部文件,它是这样的

BufferedReader jack = 
              new BufferedReader(new FileReader("/root/Desktop/woop.txt"), 32768);
    //StringBuilder comfy = new StringBuilder();
    String   line = null;
    while ((jack.readLine()) != null) {
        line = jack.readLine();         


    }
    //System.out.println(comfy.toString());

    String[] strs = line.trim().split("\\s+");
    for (int fes=0;fes<511;fes++) {
        System.out.println("this is fes"+ Integer.parseInt(strs[fes]));
    }
    System.out.println("this is strs     " );
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size2; j++) {
            //System.out.println(jack.read());
            arr[i][j] = Integer.parseInt(strs[j]);
            //System.out.println("this is reader "+arr[i][j] + "  "+  i +"   " + j);
        }
    }

}
BufferedReader插孔=
新的BufferedReader(新的文件阅读器(“/root/Desktop/woop.txt”)、32768;
//StringBuilder comfy=新的StringBuilder();
字符串行=null;
while((jack.readLine())!=null){
line=jack.readLine();
}
//System.out.println(comfy.toString());
字符串[]strs=line.trim().split(\\s+);

对于(int-fes=0;fes而言,问题在于您仅使用
j
获取要解析的字符串,因此基本上将数组的第一行复制到所有其他行

您需要考虑您应该在的行中,计算输入数组中位置的公式将是

(row number) * (length of one row) + (offset in row)

或者在您的特定情况下,您希望将
parseInt(strs[j])
替换为
parseInt(strs[i*size2+j])
您遇到的问题是,您正在while循环中读取整个文件,但只保存最后一行
读取一行并继续,您希望在执行while条件检查时注意不要丢失该行。如果您在阅读时处理每行,您将有一个更轻松的时间。它可能看起来像这样:

BufferedReader jack = 
          new BufferedReader(new FileReader("/root/Desktop/woop.txt"), 32768);

String   line = jack.readLine();
int rowNum = 0;
while (line != null) {
    String[] strs = line.trim().split("\\s+");
    int colNum = 0;
    for (String s : strs){
        arr[rowNum][colNum]=Integer.parseInt(s);
        colNum++;
    }
    line = jack.readLine();
    rowNum++;
}


}

你能澄清一下你的具体问题是什么吗?我试图在某一行和某一列中插入数字,但它在第一行和第列之后不断重复,也不应该是line=be line+=?@JeremyKahan是的,你是对的,我完全忽略了两件事,第一件是哪一行,第二件是如果我将它改为I*size2+j indexoutofbounds错误发生