Как читать только релевантную информацию из файла и игнорировать все остальное? - PullRequest
1 голос
/ 06 октября 2011

Кто-то, пожалуйста, отредактируйте мой заголовок, чтобы сделать этот вопрос более понятным.

Проще показать на примере:

Содержимое myfile.txt:

10/05/2011: 10
10/05/2011: 45.4
10/05/2011: 12.1

Я хочу прочитать числа после даты (10, 45.4, 12.1), используя BufferedReader, и сохранить их в списке. Как бы я это сделал? Я использую метод readLine () прямо сейчас, чтобы прочитать мои данные, но читает всю строку. Я не хочу хранить дату в моем списке, только цифры. Возможно ли это?

Ответы [ 5 ]

3 голосов
/ 06 октября 2011

Да, конечно, хотя сначала вам нужно будет прочитать всю строку, как только вы это сделаете, вы можете написать простое регулярное выражение, чтобы выбрать то, что вы хотите в этом случае.

В качестве альтернативы, так как числавсегда после ":", это также будет работать

String[] parts = myReadLine.split(":");
String numbers = parts[1];
2 голосов
/ 06 октября 2011

Что-то вроде:

String number = br.readLine().split(":")[1];

... просто добавьте правильную проверку ошибок ....

1 голос
/ 06 октября 2011

Я не могу редактировать ваше сообщение, потому что у меня недостаточно привилегий, однако этот процесс называется синтаксическим анализом.

Алгоритм:

while(!EOF)
{
    //read until ':'
    //put chars after ':' into a string(or char[]) until you reach a \n
}
1 голос
/ 06 октября 2011

Вы можете использовать метод subString класса строки, чтобы получить необходимую часть строки.

Например.

string line = readline()...;

string number = line.substring(12,14);

Или вы можете получитьиндекс ':' и использовать этот индекс в качестве первого параметра метода подстроки.

int i = line.indexOf(": ");
string number = line.substring(i, i+2);
0 голосов
/ 06 октября 2011

Проверить Сканер легко.Вы можете указать шаблон для чтения того, что вам нужно, с помощью метода hasNext (String pattern) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...