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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聪明一只哈 中级黑马   /  2016-6-1 13:31  /  1132 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

_集合框架(练习)
* 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
案例:
package com.heima.test;

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class Test5 {

        /**
         * 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
         * 分析:
         * 1,键盘录入字符串,Scanner
         * 2,将字符串转换为字符数组
         * 3,定义TreeSet集合,传入比较器对字符排序并保留重复
         * 4,遍历字符数组,将每一个字符存储在TreeSet集合中
         * 5,遍历TreeSet集合,打印每一个字符
         */
        public static void main(String[] args) {
                //1,键盘录入字符串,Scanner
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个字符串");
                String line = sc.nextLine();
                //2,将字符串转换为字符数组
                char[] arr = line.toCharArray();
                //3,定义TreeSet集合,传入比较器对字符排序并保留重复
                TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {

                        @Override
                        public int compare(Character c1, Character c2) {
                                //int num = c1 - c2;                                //自动拆箱
                                int num = c1.compareTo(c2);
                                return num == 0 ? 1 : num;
                        }
                });
               
                //4,遍历字符数组,将每一个字符存储在TreeSet集合中
                for(char c : arr) {
                        ts.add(c);                                                        //自动装箱
                }
               
                //5,遍历TreeSet集合,打印每一个字符
                for(Character c : ts) {
                        System.out.print(c);
                }
        }

}






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马