上干货
----------------------------------------------------------------------------------------------------------------------------
题文要求:
/*键盘录入一个字符串, 把这个字符串转成大写的,然后对这个字符串中的所有字符进行排序, 要求按字典顺序反向排序,并且保留重复. */
------------------------------------------------------------------------------------------------------------------------------ 代码区:
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class HomeWorke04 {
public static void main(String[] args) {
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("输入一个字符串:");
String str = sc.nextLine();
//转换成为大写.
String str1 =str.toUpperCase();
char [] arr = str1.toCharArray();
//要求排序,保留重复 用 TreeSet .
TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
int num = o2.compareTo(o1);
return num==0? 1:num;
}
});
for (Character character : arr) {
ts.add(character);
}
System.out.println(ts);
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------
总结:
使用到了匿名内部类,
然后使用到了treeset这个集合,
然后就是从写了 compare方法,
主要难点在于从新写compare方法,
然后通过return的值,在treeset中排列不同,
最终得到结果.
|