从文件中读取数字并存储到二维数组中
Reading numbers from file and store into 2d array
所以我尝试从包含此数据的文件中读取数据并将其存储到二维数组中:
001 012 023 102 113 124 203 214 225
(其中 001 - 表示 row/column/value)
所以我可以阅读它,但不知道如何将它存储到数组
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".);
}
读取文件后,将值按space拆分为值数组,然后调用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));
}
所以我尝试从包含此数据的文件中读取数据并将其存储到二维数组中: 001 012 023 102 113 124 203 214 225 (其中 001 - 表示 row/column/value) 所以我可以阅读它,但不知道如何将它存储到数组
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".);
}
读取文件后,将值按space拆分为值数组,然后调用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));
}