美文网首页
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