Как преобразовать 2D текстовый файл в 2D массив (Scala) - PullRequest
0 голосов
/ 30 марта 2020

Как я могу превратить текстовый файл в 2D-массив в Scala? Я читаю текстовое имя файла в командной строке, которое затем открывает файл в программе, и файл содержит 6 столбцов и различное количество строк. Я хочу иметь возможность превратить этот файл в 2D-массив, чтобы я мог получить доступ к указанным c данным. Каждый элемент в файле разделен пробелом.

val filename = readLine()
for (line <- Source.fromFile(filename).getLines) {
  println(line)
}
val lines = io.Source.fromFile(filename).getLines.toArray
print(lines)

Первые две строки текстового файла:

C#  CLA OLA Quiz Exam FinalExam
c1234501 10 20 10 30 30

Поэтому я хочу пропустить эту первую строку, но поставить все эти элементы в массив. Таким образом, массив (0) (0) должен содержать «c1234501», а массив (0) (1) должен содержать «10». Раньше я никогда не работал с Scala или Java, поэтому я не знаю синтаксиса функций, и ничто в Интернете не поможет в этом случае.

1 Ответ

2 голосов
/ 30 марта 2020

У вас есть базовые c элементы обработки файлов. Вам просто нужно split() каждая строка входного текста.

import scala.util.Try

val filename = ...
val file = Try(io.Source.fromFile(filename))                //open file
val data = file.map(_.getLines().map(_.split(" ")).toArray) //split each line
               .getOrElse(Array.empty[Array[String]])       //into an Array
file.fold(println, _.close())                   //close file or report error

Чтобы пропустить первую строку текста, добавьте .drop(1) после .getLines().

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