Hi All我有String数据类型的arrayList,但需要使用Java 8进行多个下划线的整数排序,为了您的参考,我添加了示例数据,原始数据来自Liferay 7.1 DDL
List<String> keyValues = new ArrayList<String>();
keyValues.add("100_10_20_1");
keyValues.add("100001");
keyValues.add("100002");
keyValues.add("100002_1");
keyValues.add("100003");
keyValues.add("100");
keyValues.add("100_1");
keyValues.add("100_2");
keyValues.add("100_1_1");
keyValues.add("100_10_20");
keyValues.add("10000001");
keyValues.add("100_10_20_2");
我试图用0替换下划线,但有时会发生什么100_1用0替换_,然后它变成10001,但如果我已经有10001值存在于列表中呢?即使同样的事情为空如果我替换_与“”然后它成为1001但如果我已经有1001然后我再次面临的问题
基于下划线的精确逻辑为
100
100_1
100_1_2
/after that only/
100_2
100_2_2
/after that/
103
104
105
10000
/similarly the pattern repeats/
10000_1
10000_2
10000_2_1
100002
我需要精确的输出作为
100
100_1
100_1_1
100_2
100_10_20
100_10_20_1
100_10_20_2
100001
100002
100002_1
100003
10000001
我尝试用0或空格替换下划线,但如果列表中已经存在该数字,则可能会出现这种情况,如果我替换为点并存储为Double,则会发生多指针异常
1条答案
按热度按时间bttbmeg01#
我做了一个比较器,然后分割字符串,并根据每个字符串的最小令牌数量进行处理。
这样称呼它:
给出输出: