我有一些代码类似于以下代码:
aaa_bbb_d2_aa
aaa_bbb_d3_aa
aaa_bbb_d11_aaeee_b2b_c2_ac
一般来说,它们应该作为字符串排序,但是在“aaa_bbb_d3_aa”与“aaa_bbb_d11_aa”的情况下,与简单字符串排序相比,前者应该排在第一位。
对于排序很重要的数字部分始终位于“_d”或“_c”子字符串之后,并且后面始终以“_aa”或“_ac”结束字符串。
Java 或 SQL 中的高效排序算法是什么?
最佳答案
Collections.sort(yourListOfString, (String a, String b) ->
{
int comparison = Integer.valueOf(a.split("_")[2].replaceAll("[dc]", "")).compareTo(Integer.parseInt(b.split("_")[2].replaceAll("[dc]", "")));
return comparison == 0
? a.split("_")[3].compareTo(b.split("_")[3])
: comparison;
});
(我假设您的所有字符串都在列表中)
关于java - 如何考虑字符串中的数字对字符串进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30533985/