美文网首页
Java去掉字符串中的重复字符,并排序

Java去掉字符串中的重复字符,并排序

作者: 萤火虫叔叔 | 来源:发表于2018-02-24 09:43 被阅读830次

    刚刚做一个项目,用户输入多选题的答案。需要把用户输入的内容去重,并且排序。所以写了一个工具类,分享给大家。

    思路很简单,利用TreeSet元素不重复、元素有序的特性,可以很简单的实现,具体代码如下:

        /**
         * 把字符串去重,并升序排序
         * @param str
         * @return
         */
        public static String sort2(String str) {
    
            //把String变成单一字符数组
            String[] chars = str.split("");
    
            //把字符串数组放入TreeSet中,根据set元素不重复的特性去掉重复元素。根据treeSet的有序性排序
            TreeSet<String> treeSet = new TreeSet();
            for (String s : chars) {
                treeSet.add(s);
            }
    
            //把treeSet拼接成字符串
            str = "";
            for (String s : treeSet) {
                str += s;
            }
            return str;
        }
    

    测试代码:

    String s = "cbbkac";
    System.out.println("去重排序前:" + s);
    s = sort2(s);
    System.out.println("去重排序后:" + s);
    

    测试结果:

    去重排序前:cbbkac
    去重排序后:abck
    

    正文结束,以下为补充


    如果还需要变成大写,也很简单。String有一个方法toUpperCase,可以把字符串变成大写。

    String str = "abcc";
    str.toUpperCase();
    

    如果需要过滤用户输入的字符,只保留字母,怎么办呢?使用正则表达式很容易做到:

    String input = "你好acd123";
    input.replaceAll("[^a-zA-Z]", "");
    

    这两个例子都比较简单,就不放测试代码啦,大家自行测试吧。

    喜欢就关注我吧~

    相关文章

      网友评论

          本文标题:Java去掉字符串中的重复字符,并排序

          本文链接:https://www.haomeiwen.com/subject/tztqxftx.html