2016-03-17 5 views
-1

я следующий списокScala сортировать строки на основе длины маркеров

val input = List("Rahul KM","M Ranjan","LK Advani") 

Я хочу, чтобы отсортировать этот список расщепленные значений на основе длины строки. Например мне нужен выход, чтобы быть как

op 
List("Rahul KM","Ranjan M","Advani LK") 

Edit: Для примера рассмотрим "LK Advani", мне нужно это отсортированный в "Advani LK", как LEN (Advani)> LEN (LK)

+2

Две минуты, потраченные на чтение Scaladoc для 'List', показали бы, что вы' sortBy'. В примере там используется 'length'. –

+0

Я не просто сортирую по длине. Я двигаю инициалы вокруг –

+0

Почему downvote? –

ответ

3

Я заметил, что вы не просто сортировка по длине, но вы также движется вокруг инициалов и фамилий. Как насчет этого:

input.sortBy(_.length).map { name => 
    name.split(" ").sortWith(_.length > _.length).mkString(" ") 
} 
3

просто:

val res = input.sortBy(_.length) 
0
val input = List("Rahul KM","M Ranjan","LK Advani") 

var result = input.sortWith(_.length < _.length) 

result.foreach((s:String) => { println(s)}) 
Смежные вопросы