【发布时间】:2021-01-19 06:10:21
【问题描述】:
我有一个字符串,例如crccoaaroac。如何编写使用自定义排序,使字符串中的字母按以下顺序排列:
1) c
2) r
3) o
4) a
因此,排序后的字符串将为cccrrooaaa
我对 Java 比较陌生。我知道如何进行升序和降序排序,但是有什么好方法可以自定义排序呢?
【问题讨论】:
-
将字符串分解为一个字符数组。使用您的自定义订单手动进行排序,或使用比较器。顺便说一句:如果字符串中有第五个字符(可能是'x')会发生什么?
-
@NomadMaker 我想将其分解为 LinkedHashMap
> 但不确定如何按键自定义排序。只有这 4 个字符。 -
我只会使用 Set 或者 HashMap
(Character 来保存 char,Integer 来保存它们的数量)。您的订单是具体的。你可以有一个数组 char[] order = {'c', 'r', 'o', 'a'}或者只是硬编码它。 -
@NomadMaker 你能写一个像这样的例子吗:
Map<Character, List<Integer>> mp = new LinkedHashMap<>(); mp.entrySet().stream().sorted( <WHAT DO I DO HERE??>) )我认为在 java 8 中会是这样的吗? -
我只是使用一个循环。我退休了,没有使用过 j8 流。