刚刚做一个项目,用户输入多选题的答案。需要把用户输入的内容去重,并且排序。所以写了一个工具类,分享给大家。
思路很简单,利用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]", "");
这两个例子都比较简单,就不放测试代码啦,大家自行测试吧。
喜欢就关注我吧~
网友评论