Чтение TXT-файла в массив с помощью сканера - PullRequest
0 голосов
/ 18 октября 2011

У меня есть текстовый файл, который выглядит примерно так:

тип, расстояние, длина, другое,

A, 62, 17, abc,

A, 12, 4 ,,

A, 6, 90 ,,

A, 46, 53 ,,

и т. Д.

Все разделены запятыми, но иногда есть пробел.Мне нужно иметь возможность считывать эти данные в массив с помощью сканера (не буферизованного читателя) и иметь возможность каким-то образом учитывать пробелы, а также разделять запятыми.Позже мне нужно будет рассчитывать вещи с данными в каждом столбце.Как я могу получить эти данные в массив?

Это то, что у меня есть до сих пор: (Java)

import java.util.Scanner;
import java.io.*;

public class RunnerAnalysis {

    public static void main(String[] args) throws IOException {

        Scanner keyboard = new Scanner(System.in);

        System.out.print("File: ");
        String filename = keyboard.nextLine();

        File file = new File(filename);
        Scanner inputFile = new Scanner(file);

        inputFile.nextLine();

        String line = inputFile.nextLine();

        while(inputFile.hasNext())
        {
        String[] array = line.split(",");
        }



    }

}

1 Ответ

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

Если вы действительно хотите использовать сканер, что, по-моему, не очень хорошая идея, вы можете установить разделитель на ,.

Scanner inputFile = new Scanner(...);
inputFile.useDelimiter(",");

while (inputFile.hasNext())
{
    String type = inputFile.next();
    int distance = inputFile.nextInt();
    int length = inputFile.nextInt();
    String other = inputFile.next();

    // Process...
}

Я предпочитаю использовать BufferedReaderв комбинации с String.split(",").

...