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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Lee_Hoon_Leong 于 2016-10-2 11:16 编辑

package com.heima.demo;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Demo_14 {
        /**
         * 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,
         * 并将所有已输入的字符串按字典顺序倒序打印。
         */
        public static void main(String[] args) {
                demo1();
}
        private static void demo1() {
                Scanner sc=new Scanner(System.in);
                String string;
                StringBuffer sb=new StringBuffer();
                //当输入的不是end时进行循环,将输入的值追加在缓冲区字符串
                while(!(string=sc.nextLine()).equals("end")){
                        sb.append(string);
                        sb.append(",");
                }
                //将缓冲区字符串转换为字符串后切割
                String[] strarr=sb.toString().split(",");
                //自定义比较器
                TreeSet<Character> ts=new TreeSet<>(new Comparator<Character>() {
                        @Override
                        public int compare(Character c1, Character c2) {
                                int num=c2-c1;//倒序打印,正序c1-c2
                                //int num=c2.compareTo(c1);用比较器的形式
                                return num==0?1:num;
                        }
                });
                //外层循环将字符串转换为字符数组
                for (int i = 0; i < strarr.length; i++) {
                        char[] carr=strarr.toCharArray();
                       
//内层循环1:将字符数组中的数据包装后放入TreeSet
                        for (Character c : carr) {
                                        ts.add(c);
                        }        
                        //内层循环2:打印TreeSet中的数据
                        for (Character c : ts) {
                        System.out.print(c);
                        }
                        System.out.println();
                }
        }
}
也许是我写的太复杂了,最后的外层循环和内层循环恁是不明白。
还有,不知道各位黑马er有没有其他更好的方法

5 个回复

倒序浏览
回复 使用道具 举报
我们还没有学到TreeSet啊
回复 使用道具 举报
比较那里还没学到
回复 使用道具 举报
treeset存进来倒着出来就是的。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
思路很清晰,,渣渣如我也能看懂Y(^o^)Y
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马