如何在 dart 中使用正则表达式对字符串列表进行排序?
How do I sort a string list using regular expressions in dart?
我基本上是在寻找除 .sort() 之外的另一种对字符串列表进行排序的方法
出于我的目的使用它给了我 type '_SecItem' is not a subtype of type 'Comparable<dynamic>'
我正在尝试按字符串前面的数字对字符串列表进行排序。类似于:
List<String> hi = ['05stack', '03overflow', '01cool','04is', '02uToo'];
对此:
['01cool', '02uToo', '03overflow', '04is', '05stack']
我可以使用 sort() 轻松排序。
var List<String> hi = ['05stack', '03overflow', '01cool', '04is', '02uToo'];
hi.sort();
hi.forEach((element) {
print(element);
});
它打印:
01cool
02uToo
03overflow
04is
05stack
我没有收到
的任何错误
type '_SecItem' is not a subtype of type 'Comparable<dynamic>'
具有提取数字的功能
int extractNumber(String srt){
RegExp regex = new RegExp(r"(\d+)");
return regex.allMatches(srt).toList().map((m){
return srt.substring(m.start, m.end);
}).toList().map((v)=>int.parse(v)).first;
}
void main(){
List<String> test = ['05stack', '03overflow', '01cool','04is', '02uToo'];
test.sort((a, b)=>extractNumber(a)>extractNumber(b) ? 1 : -1);
print(test);
}
我基本上是在寻找除 .sort() 之外的另一种对字符串列表进行排序的方法
出于我的目的使用它给了我 type '_SecItem' is not a subtype of type 'Comparable<dynamic>'
我正在尝试按字符串前面的数字对字符串列表进行排序。类似于:
List<String> hi = ['05stack', '03overflow', '01cool','04is', '02uToo'];
对此:
['01cool', '02uToo', '03overflow', '04is', '05stack']
我可以使用 sort() 轻松排序。
var List<String> hi = ['05stack', '03overflow', '01cool', '04is', '02uToo'];
hi.sort();
hi.forEach((element) {
print(element);
});
它打印:
01cool
02uToo
03overflow
04is
05stack
我没有收到
的任何错误type '_SecItem' is not a subtype of type 'Comparable<dynamic>'
具有提取数字的功能
int extractNumber(String srt){
RegExp regex = new RegExp(r"(\d+)");
return regex.allMatches(srt).toList().map((m){
return srt.substring(m.start, m.end);
}).toList().map((v)=>int.parse(v)).first;
}
void main(){
List<String> test = ['05stack', '03overflow', '01cool','04is', '02uToo'];
test.sort((a, b)=>extractNumber(a)>extractNumber(b) ? 1 : -1);
print(test);
}