题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

  1. 输入待处理的字符数。使用sc.nextInt()的时候,记得要接受他输入的数字后面的换行
  2. 逐一将输入的字符串写入list集合中
  3. 重写list集合的排序规则 (1) 先逐一比较字符串每个字符的大小 (2) 如果都一样,则比较长度 (3) 如果长度相等,返回0,否则返回+1,-1

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int numbers = sc.nextInt();// 数量
            String huanhan = sc.nextLine();
            List<String> list = new ArrayList<>();// 可以重写比较方法,用来排序
            for(int i = 0; i < numbers;i++){
                list.add(sc.nextLine());
            }
            list.sort(new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    // 先一个一个比较字符
                    int index = 0;
                    while(index < o1.length() && index < o2.length()){
                        if(o1.charAt(index) > o2.charAt(index)) return 1;
                        else if(o2.charAt(index) > o1.charAt(index)) return -1;
                        else index++;
                    }
                    if(o1.length() == o2.length()) return 0;// 如果字母和长度都相等,则返回0
                    else return o1.length() > o2.length()? 1 : -1;
                }
            });
            // 输出list集合
            for(String s : list){
                System.out.println(s);
            }
        }
    }
}
全部评论

相关推荐

一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
MingoTree:看不出你你的技术栈,想找什么工作,然后课设项目别写上去了,自我评价删了,前后端你想好你要干啥,这种简历投上去秒挂的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务