如何在Dart中按单词最后一个字母对列表进行排序?
如何在Dart中按字符串最后一个字母排序列表?
给定如下字符串列表:
List<String> myList = ['Jacob','Jane','Cedric','Angela','Gerald'];
需要按每个单词的最后一个字母进行排序,预期得到结果:
List<String> myList = ['Angela','Jacob','Cedric','Gerald','Jane'];
实现方法
直接使用Dart列表的sort方法,传入自定义比较器即可:
void main() { List<String> myList = ['Jacob','Jane','Cedric','Angela','Gerald']; // 按最后一个字母排序 myList.sort((a, b) => a.last.compareTo(b.last)); print(myList); // 输出: [Angela, Jacob, Cedric, Gerald, Jane] }
代码说明
sort方法接收一个比较函数,该函数返回int类型的值:- 返回负数:
a排在b前面 - 返回0:
a和b顺序不变 - 返回正数:
a排在b后面
- 返回负数:
a.last获取字符串的最后一个字符,compareTo方法会按字符的Unicode码点进行比较,符合字母排序的需求。
处理空字符串(可选)
如果列表中可能包含空字符串,可以在比较器中添加判断逻辑,比如将空字符串排在最前面:
myList.sort((a, b) { if (a.isEmpty) return -1; if (b.isEmpty) return 1; return a.last.compareTo(b.last); });
内容的提问来源于stack exchange,提问作者Ebuzer SARIYERLİOĞLU
相关产品推荐
相关产品推荐

