java—从文件中读取数字并存储到2d数组中

yduiuuwa  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(293)

所以我试图从一个包含这个数据的文件中读取数据并将其存储到2d数组中:001 012 023 102 113 124 203 214 225(其中001-表示行/列/值),这样我就可以读取它,但无法理解如何将它存储到数组中

int [][] arr = new int[3][3];
File file = new File("file.txt");
try(
    FileReader myFile = new FileReader(file);
    BufferedReader buff = new BufferedReader(myFile);
){
  System.out.println(buff.readLine());
}catch(FileNotFoundException ex){
  System.out.println("File not found".);
}
bz4sfanl

bz4sfanl1#

读取文件后,将值按空间拆分,形成一个值数组,然后调用 Character.digit(value.charAt(0), 10) 要将字符改为以10为基数的数字,并根据您的方式赋值,请执行以下操作:

int [][] arr = new int[3][3];
File file = new File("file.txt");

try(
    FileReader myFile = new FileReader(file);
    BufferedReader buff = new BufferedReader(myFile);
){
    // String fileData = "001 012 023 102 113 124 203 214 225";
    String fileData = buff.readLine();
    String [] data = fileData.split(" ");

    for (String value : data) {
        arr[Character.digit(value.charAt(0), 10)][Character.digit(value.charAt(1), 10)] = Character.digit(value.charAt(2), 10);
    }

    for (int[] array : arr) {
        System.out.println(Arrays.toString(array));         
    }
}catch(Exception ex){
  System.out.println("File not found");
}

你也可以使用 Character.getNumeric 将数字字符转换为int值的方法:

for (String value : data) {
    arr[Character.getNumericValue(value.charAt(0))][Character.getNumericValue(value.charAt(1))] = Character.getNumericValue(value.charAt(2));
}

相关问题