我正在使用多维数组,但我被卡住了。
第一行是测试用例的数量,而下一行读取int(N)
并构造N * N grid
。我只需要一些测试用例的帮助。
我在下面做了一些事......
public static int[][] parseInput(final String fileName) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
int n = Integer.parseInt(reader.readLine());
int[][] result = new int[n][n];
String line;
int i = 0;
while ((line = reader.readLine()) != null) {
String[] tokens = line.split("");
for (int j = 0; j < n; j++) {
result[i][j] = Integer.parseInt(tokens[j]);
}
i++;
}
return result;
}
只需要如何阅读此示例输入
3
2
||
..
3
|.|
...
|||
2
|.
.|
如何阅读第一行以继续阅读剩余的测试用例。 例如上面(读入3并读入3个输入以构建网格)。
答案 0 :(得分:0)
请尝试这个:
public static void parseInput(final String fileName) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
int test_cnt = Integer.parseInt(reader.readLine());
for(int i = 0; i < test_cnt;i++){
int n = Integer.parseInt(reader.readLine());
int[][] grid = parseInput(n, reader);
//do something for result grid
}
}
private static int[][] parseInput(int n, BufferedReader reader) throws Exception{
int[][] result = new int[n][n];
String line;
int i = 0;
while (i < n && (line = reader.readLine()) != null) {
//String[] tokens = line.split("");
char[] tokens = line.toCharArray();
for (int j = 0; j < n; j++) {
result[i][j] = (int)tokens[j];
}
i++;
}
return result;
}
答案 1 :(得分:0)
尝试使用它。(我认为这是一个编程竞争问题) 此示例用于读取标准输入。你可以使用FileReader(你的读者)。其他人都是一样的。
public class Test {
public static void main(String[] args) throws Exception {
solve();
}
public static void solve() throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int testcases = Integer.parseInt(reader.readLine());
int i = 0;
for (i = 0; i < testcases; ++i) {
int n = Integer.parseInt(reader.readLine());
int[][] result ;
result = parseInput(reader, n);
System.out.println("####");
for(int j=0;j<n;++j){
for(int k=0;k<n;++k){
System.out.print(result[j][k] + " ");
}
System.out.println();
}
System.out.println("####");
}
}
public static int[][] parseInput(BufferedReader reader, int n) throws Exception {
int[][] result = new int[n][n];
String line;
int i = 0;
for (i = 0; i < n; ++i) {
line = reader.readLine();
for (int j = 0; j < n; j++) {
result[i][j] = line.charAt(j);
}
}
return result;
}
}