如何将读取的文本文件内容转换为8×8数组形式展示?
解决方案:将文件内容转换为8×8数组并展示
没问题,我来帮你搞定把文件内容转成8×8数组展示的需求!我们只需要在你现有代码的基础上,补充几个关键步骤就能实现目标,以下是完整的实现方案:
import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class FileRead { public static void printRow(int[] row) { for (int k : row) { System.out.print(k); System.out.print("\t"); } System.out.println(); } public static void main(String[] args) { // 第一步:读取文件里的所有整数 List<Integer> allNumbers = new ArrayList<>(); try (Scanner fileScanner = new Scanner(new File("your-file-path.txt"))) { // 替换成你的实际文件路径 // 逐个读取文件中的整数,不管换行还是空格都能正确识别 while (fileScanner.hasNextInt()) { allNumbers.add(fileScanner.nextInt()); } } catch (FileNotFoundException e) { System.err.println("出错了:找不到指定文件 -> " + e.getMessage()); return; } // 第二步:验证数字数量是否符合8×8的要求(必须是64个) if (allNumbers.size() != 64) { System.err.println("文件中的数字数量不对哦,需要恰好64个数字才能组成8×8数组"); return; } // 第三步:把列表转成8×8的二维数组 int[][] eightByEightGrid = new int[8][8]; int numIndex = 0; for (int row = 0; row < 8; row++) { for (int col = 0; col < 8; col++) { eightByEightGrid[row][col] = allNumbers.get(numIndex++); } } // 第四步:调用你写好的方法逐行打印数组 System.out.println("转换后的8×8数组:"); for (int[] singleRow : eightByEightGrid) { printRow(singleRow); } } }
关键细节说明:
- 灵活读取数字:用
Scanner的hasNextInt()和nextInt()方法,可以自动忽略文件里的空格、换行符,把所有整数都收集起来,不用纠结文件的排版格式。 - 异常校验:添加了数字数量检查,避免因文件里数字多了或少了导致数组越界报错,同时处理了文件找不到的异常情况。
- 数组填充逻辑:通过双层循环,按行优先的顺序把收集到的数字逐个填入8×8数组,保证顺序和文件里的一致。
测试效果示例:
如果你的文件里是1到64的连续数字,运行后会输出整齐的8行8列格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
内容的提问来源于stack exchange,提问作者Rashmi Shree
相关产品推荐
相关产品推荐

