Scala根据标记的长度对字符串进行排序

Scala根据标记的长度对字符串进行排序,scala,Scala,我有以下清单 val input = List("Rahul KM","M Ranjan","LK Advani") 我想根据字符串长度对列表中的拆分值进行排序。 例如,我需要输出如下 op List("Rahul KM","Ranjan M","Advani LK") < >编辑:例如考虑“LK AdvaNi”,我需要将其排序为“Advani LK”作为LeN(ADVANI)> LEN(LK) < P>简单: val res = input.sortBy(_.length) val输入=

我有以下清单

val input = List("Rahul KM","M Ranjan","LK Advani")
我想根据字符串长度对列表中的拆分值进行排序。 例如,我需要输出如下

op
List("Rahul KM","Ranjan M","Advani LK")
< >编辑:例如考虑“LK AdvaNi”,我需要将其排序为“Advani LK”作为LeN(ADVANI)> LEN(LK)

< P>简单:

val res = input.sortBy(_.length)
val输入=列表(“Rahul KM”、“M Ranjan”、“LK Advani”)
var结果=输入.sortWith(u.length{println(s)})

我注意到你不仅仅是在按长度排序,而且还在围绕着首字母和姓氏进行排序。这个怎么样:

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

花两分钟阅读Scaladoc for
列表
会告诉你
sortBy
这里的例子甚至使用了
length
。我不仅仅是按长度排序。我移动的首字母aroundI没有否决投票,但可能是一个与你(最初)提出的问题不匹配的例子。移动首字母与按长度排序没有关系(长度不变),那么您的实际问题是什么?按长度排序,还是移动首字母?如果是后者,我不知道“根据长度移动首字母”是什么意思……啊,好吧,这样在再次编辑后就更清楚了。因此,该清单并不重要。您要问的是如何将字符串中的单词按长度顺序排序,您确定这是正确的算法吗?如果你有姓“Ng”的人,你会怎么做?(相当普遍)
input.sortBy(_.length).map { name =>
    name.split(" ").sortWith(_.length > _.length).mkString(" ")
}