对字符串内的数字进行排序

时间:2019-08-24 18:43:14

标签: flutter dart

我有一个由几个数字组成的字符串。第一个数字是该行的编号,其余是该行中的编号。(数组,但字符串,种类)。问题是剩余数字未排序,我想找到一种最清晰的方式对它们进行排序,而无需创建新的List并对其中的所有内容进行排序。

String unsorted = '9, 12, 14, 11, 2, 10';
print(unsorted.sort()); // '9, 2, 10, 11, 12, 14'

2 个答案:

答案 0 :(得分:0)

在使用Dart编程语言时,我并不十分有经验,但这就是我想出的。

void main() {
     var unsorted = "9, 12, 14, 11, 2, 10";
     var nums_int = unsorted.split(", ").map(int.parse).toList();
     nums_int.sort();
     for (var n in nums_int) {
         stdout.write(n.toString() + ", ");
     }
}

那应该给出预期的输出:“ 2,9,10,11,12,14”

希望这会有所帮助。

答案 1 :(得分:0)

如果要对数字进行排序,则不能避免转换为数字列表。

void main() {
  print(sortNumString('9, 12, 14, 11, 2, 10')); // 2, 9, 10, 11, 12, 14
}

String sortNumString(String numString, [String separator = ', ']) =>
    (numString.split(separator).map(int.parse).toList()..sort())
        .join(separator);

..的意思是返回上一个列表,因为sort返回void。