【发布时间】:2019-11-09 16:02:27
【问题描述】:
当我做一个国际象棋问题时,我的要求来了,其中通过 System.in 给出了 8X8 字符值。我正在对其进行测试,并且一直在提供 64 个输入,这非常困难。现在,我想在文本文件中保持相同并读取它并将其存储在字符数组中。请帮我这样做。有多种方法可以读取和显示文件的内容,或者我们可以转换为一维字符数组。但是,我想知道它可以直接从 StringBuilder 转换为 2D 字符数组!!!!这是我尝试过的。
StringBuilder c = new StringBuilder();
File f = new File("file\\input.txt");
FileInputStream br = new FileInputStream(f);
int str;
while ((str = br.read()) != -1) {
c.append((char) str);
}
br.close();
System.out.println(c);
int strBegin = 0;
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < input.length; j++) {
input[i][j] = c.substring(strBegin, strBegin + 1).toCharArray()[0];
strBegin++;
}
}
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < input.length; j++) {
System.out.print(input[i][j] + " ");
}
System.out.println();
}
这里,文件input.txt的内容:
2345678
1 345678
12 45678
123 5678
1234 678
12345 78
123456 8
1234567
注意:还有一个对角线空间也必须存储到数组中。
当我运行代码时,我得到了这个:
2345678
1 345678
12 45678
123 5678
1234 678
12345 78
123456 8
1234567
2 3 4 5 6 7 8
1 3 4 5 6
8
1 2 4
6 7 8
1 2
5 6 7 8
1 2 3 4 6 7 8
1 2 3 4 5
8
1 2 3 4
【问题讨论】:
-
输出应该是什么样子?
-
和文件格式一样..但是应该在那个char数组里。
标签: java arrays string char stringbuilder