У меня есть текстовый файл, который выглядит так:
5 10
ahijkrewed
llpuvesoru
irtxmnpcsd
kuivoqrsab
eneertlqzr
tree
alike
cow
dud
able
dew
Первое число в первой строке, 5, — это количество строк в головоломке с поиском слов, а 10 — это количество столбцов в головоломке. Следующие пять строк — головоломка. Мне нужно знать, как поместить 5 в целое число строк и 10 в целое число столбцов. Затем мне нужно перейти к следующей строке, чтобы прочитать строки. Используя модифицированный файл только с 5 строками для головоломки, я понял, как поместить часть головоломки в массив 2d, но мне нужен способ установить размер этого массива из первой строки соответствующего текстового файла.
Я написал это:
import java.io.*;
class SearchDriver {
public static void processFile(String filename) throws FileNotFoundException, IOException {
FileReader fileReader = new FileReader(filename);
BufferedReader in = new BufferedReader(fileReader);
// declare size of array needed
//
// int rows and columns need to be read in from first
// line of the file which will look like: X Y
//
// so i need rows = X and columns = Y
int rows = 5;
int columns = 10;
String[][] s = new String[rows][columns];
// start to loop through the file
//
// this will need to start at the second line of the file
for(int i = 0; i < rows; i++) {
s[i] = in.readLine().split("(?!^)");
}
// print out the 2d array to make sure i know what i'm doing
for(int i=0;i<rows;i++) {
for(int j=0;j<columns;j++) {
System.out.println("(i,j) " + "(" + i + "," + j + ")");
System.out.println(s[i][j]);
}
}
}
public static void main(String[] args)
throws FileNotFoundException, IOException {
processFile("puzzle.txt");
}
}
Будем признательны за любую помощь, включая любые веб-сайты с примерами и обширной документацией по чтению файлов с использованием BufferedReader.
Scanner
методыhasNextInt
иnextInt
(для целых чисел) иhasNext
иnext
для строк. - person PM 77-1   schedule 15.09.2013