Я беру текстовые файлы с именами в каждой строке и пытаюсь отсортировать их по длине фамилии (первый приоритет), а затем длины имени (второй приоритет).Результатом должно быть имя и фамилия, которые должны выглядеть следующим образом: символы, представленные символами x:
xx xx, xx xxx, xx xxxx, xxx xx, xxx xxx, xxxx xxx и т. Д.
Myмыслительный процесс состоит в том, чтобы разбить строку по пробелу и отсортировать по отдельности.Я пытался использовать списки и карты без удачи.В настоящее время я использую метод массива, чтобы попытаться сохранить целостность разделенных строк.Я могу отсортировать оба массива по длине строки, но я не могу понять, как их снова объединить, не испортив порядок.
val fnbuild = new ArrayBuffer[String]()
val lnbuild = new ArrayBuffer[String]()
val fullbuild = new ArrayBuffer[String]()
for (line <- Source.fromFile(filename).getLines){
val split = line.split(" ")
fullbuild += line
//array of full names, first name first
fnbuild += split(0)
//array of first names
lnbuild += split(1)
//array of last names
}
val fnarray = fnbuild.toArray.sortWith(_.length < _.length)
val lnarray = lnbuild.toArray.sortWith(_.length < _.length)
val refarray = fullbuild.toArray
Здесь у меня все массивы построены, но я не знаю, как их получитьрезультат, которого я желаю.Есть ли более простой способ сделать это?Какие шаги я должен предпринять, если нет?