Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Scala基于字符串中的数字进行排序_List_Scala_Sorting - Fatal编程技术网

List Scala基于字符串中的数字进行排序

List Scala基于字符串中的数字进行排序,list,scala,sorting,List,Scala,Sorting,我有一个文件,其中包含以下类型的行: A 2.3 B 5.6 A 5.4 B 3.5 A 5.6 B 3.4 我想读取文件并根据第二列(即2.3,5.4,5.6)对其进行排序,并将排序扩展到所有列,因此输出应为: A 5.6 B 3.4 A 5.4 B 3.5 A 2.3 B 5.6 我正在考虑将文件作为列表读取,然后进行匹配以获得第二列,然后进行排序。有更好的方法吗?你可能想要这样的东西 val src = scala.io.Source.fromFile("filename") val

我有一个文件,其中包含以下类型的行:

A 2.3 B 5.6
A 5.4 B 3.5
A 5.6 B 3.4
我想读取文件并根据第二列(即2.3,5.4,5.6)对其进行排序,并将排序扩展到所有列,因此输出应为:

A 5.6 B 3.4
A 5.4 B 3.5
A 2.3 B 5.6

我正在考虑将文件作为列表读取,然后进行匹配以获得第二列,然后进行排序。有更好的方法吗?

你可能想要这样的东西

val src = scala.io.Source.fromFile("filename")
val lines = src.getLines.toSeq.sortBy(line => -line.split(' ').apply(1).toDouble)
src.close

消极的是先排序最大的;默认值首先是最小值。

您的想法是正确的,但请注意,有一个命令行实用程序可以为您执行此操作:

$ sort -k2 -n -r
A 2.3 B 5.6
A 5.4 B 3.5
A 5.6 B 3.4
^D
A 5.6 B 3.4
A 5.4 B 3.5
A 2.3 B 5.6
如果您真的想在scala中执行此操作,则需要将其读入内存,然后使用比较器查看每行中的第二个字段