Читайте в разных типах данных из файла - PullRequest
0 голосов
/ 26 января 2019

ТОЛЬКО НЕОБХОДИМО ОБЪЯСНЕНИЕ, КОД НЕ ТРЕБУЕТСЯ !!

Мне нужно прочитать файл, формат которого <double>, <double> в строке, где также есть пробел и запятая. В настоящее время я читаю с помощью scanner.nextLine (), и я хочу знать, как разобрать полученную строку для двух необходимых мне двойных значений.

Я использую Java, но не вслух, чтобы использовать готовые сторонние библиотеки.

Я также пробовал DatainputStream и BufferedReader

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Scanner.nextLine() очень медленный, поэтому лучше использовать BufferedReader.

Затем вы можете использовать indexOf() и substring():

try (BufferedReader in = Files.newBufferedReader(filePath)) {
    for (String line; (line = in.readLine()) != null; ) {
        int idx = line.indexOf(", ");
        if (idx == -1)
            throw new IllegalArgumentException("Invalid line: " + line);
        double d1, d2;
        try {
            d1 = Double.parseDouble(line.substring(0, idx));
            d2 = Double.parseDouble(line.substring(idx + 2));
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("Invalid line: " + line, e);
        }
        // code using d1 and d2 here
    }
}
0 голосов
/ 26 января 2019

Что вам нужно, так это разделить строку

String string = "4.0,3.2";
String[] results = string.split(",");
String firstDouble = results[0];
String secondDouble = results[1];

, а затем проанализировать результаты, чтобы удвоить

Double double = Double.parseDouble(firstDouble);
...