【发布时间】:2021-02-11 11:46:04
【问题描述】:
我正在努力以自然顺序对字符串流(或列表,如果您愿意)进行排序,忽略前缀。 前缀始终以 let 开头,后面可以跟任何数字(例如 let12 或 let3021)
示例输入:
let3 art zero
let2 own kit dig
let1 art can
所需输出示例:
let1 art can
let3 art zero
let2 own kit dig
所以我尝试过的一个简单想法是执行以下操作:
list.stream().sorted();
但是数字妨碍了,产生以下输出:
let1 art can
let2 own kit dig
let3 art zero
如何以简单的方式实现此结果?理想的解决方案是比较器,或者我可以在流中使用的任何东西。
注意:我尝试使用 Comparator 失败了,因为前缀可以是任意长度。
感谢您的宝贵时间。
【问题讨论】:
标签: java sorting java-stream comparator