在一个字符串序列中,如果有两个相同或更多的字符串,用下划线来加尾部编号,第一个不变,第二个开始,分别加

在一个字符串序列中,如果有两个相同或更多的字符串,用下划线来加尾部编号,第一个不变,第二个开始,分别加上“_0”,"_1","_2"......

例如:

输出序列:a,b,b,c,a,a,b,a,c

输出列表:a, b, b_0, c, a_0, a_1, b_1, a_2, c_0

Java 代码实现:

    public static void main(String[] args) {
        List<String> input = Lists.newArrayList("a","b","b","c","a","a","b","a","c");
        List<String> result = new ArrayList<>(input.size());
        Map<String,Integer> map = new HashMap<>();
        input.forEach(s->{
            if (!map.containsKey(s)){
                map.put(s,-1);
            }else {
                map.put(s,map.get(s)+1);
            }
            result.add(map.get(s) == -1?s:s+"_"+map.get(s));
        });
        System.out.println(result);
    }
发布了406 篇原创文章 · 获赞 127 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/101049737
今日推荐