java - txt 文件到二维数组
问题描述
我应该从填充了 15 个 X 和 O 的 .txt 文件中转换我的第二行,并将其打印到 java 中的二维数组上。
这是我的 .txt 文件中的一维数组。
XOXOX
XOOXX
XXXOO
XXOOO
XXXXO
OOOOX
XOOXX
OOXXO
OXOXO
OXXXO
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(System.in);
System.out.print("Enter the input filename ");
String inputFile = in.next();
Scanner inFile = new Scanner(new File(inputFile));
String line=inFile.nextLine();
line.toUpperCase();
String array[] = line.split("X");
System.out.println(array[0]+ " " + array [1]);
String arrayE1 = array[0];
String arrayE2 = array[1];
Integer.parseInt(arrayE1);
Integer.parseInt(arrayE2);
String line2 = inFile.next();
System.out.println(line2);
char [][] MovieTheater = new char [Integer.parseInt(arrayE1)][Integer.parseInt(arrayE2)];
int k = 0;
for (int i = 0; i < Integer.parseInt(arrayE1); i++) {
for (int j = 0; i < Integer.parseInt(arrayE2); j++) {
MovieTheater[i][j] = line2.charAt(k++);
}
System.out.println("");
}
inFile.close();
}
解决方案
您可以使用Files.lines()
读取文件中的所有行并String.toCharArray()
从每一行获取所有字符:
try (Stream<String> lines = Files.lines(Paths.get(inputFile))) {
char[][] movieTheater = lines
.map(String::toCharArray)
.toArray(char[][]::new);
System.out.println(Arrays.deepToString(movieTheater));
}
结果将是这个二维数组:
[
[X, O, X, O, X], [X, O, O, X, X],
[X, X, X, O, O], [X, X, O, O, O],
[X, X, X, X, O], [O, O, O, O, X],
[X, O, O, X, X], [O, O, X, X, O],
[O, X, O, X, O], [O, X, X, X, O]
]
推荐阅读
- javascript - SuiteScript 错误 - Catch(e) - e 未定义
- flutter - 如何在颤动中创建数字选择器作为警报对话框?
- android - Android Studio 编译 Telegram 源码
- javascript - 进度条结束后如何重置
- excel - 从 Python 执行 Excel 宏而不重新打开文件
- google-apps-script - Google Scripts:在两个文件之间复制粘贴数据,列标准
- c# - 实体框架问题,表或视图没有主键
- python - “用户”对象没有属性“公会”AttributeError
- javascript - 意外的令牌,预期的,(8:21)
- android - Android studio - 在模拟器中未检测到通过 Wi-Fi 热点连接的设备(热点是在 Windows 10 上创建的)