A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© boom_pm2.5 中级黑马   /  2016-11-19 23:42  /  785 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

上干货

-----------------------------------------------------------------------------------------------------------------------

题文:
/*键盘录入一个字符串, 把这个字符串转成大写的,然后对这个字符串中的所有字符进行排序,
        要求按字典顺序反向排序,并且保留重复.
        */
------------------------------------------------------------------------------------------------------------------------------

代码区:

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);
        }
}       
---------------------------------------------------------------------------------------------------------------------------------

总结:
这道题使用到了之前学习到的 匿名内部类,
匿名内部类的好处就是不用创建另外一个class类,实现接口
然后再使用接口,
匿名内部类 充分的为我们提供了 不用穿件对象就能使用方法.
这道题,还用到了
TreeSet集合中 排序的 特性,


1 个回复

正序浏览
总结的力量是 伟大的,可以使我 学习更加的透彻
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马