zoukankan      html  css  js  c++  java
  • 字符串排序

    看了别人的代码,发现自己还是菜了。对Java api的使用不熟练

    介绍一下题目

    题目描述

    编写一个程序,将输入字符串中的字符按如下规则排序。

    规则 1 :英文字母从 A 到 Z 排列,不区分大小写。

           如,输入: Type   输出: epTy

    规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。

         如,输入: BabA   输出: aABb

    规则 3 :非英文字母的其它字符保持原来的位置。

         如,输入: By?e   输出: Be?y

    样例:

        输入:

       A Famous Saying: Much Ado About Nothing(2012/8).

        输出:

       A  aaAAbc   dFgghh :  iimM   nNn   oooos   Sttuuuy  (2012/8).

    输入

    A Famous Saying: Much Ado About Nothing (2012/8).
    

    输出

    A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
    import java.util.*;
     
    public class Main{
         
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                String str = in.nextLine();
                char[] chr = str.toCharArray();
                List<Character> list = new LinkedList();
                for(Character ch : chr){
                    if(Character.isLetter(ch))
                        list.add(ch);
                }
                 
                Collections.sort(list, new Comparator<Character>(){
                    public int compare(Character c1, Character c2){
                        return Character.toLowerCase(c1) - Character.toLowerCase(c2);
                    }
                });
                int cnt = 0;
                for(int i = 0; i < chr.length; i++){               
                    if(Character.isLetter(chr[i])){
                        chr[i] = list.get(cnt);
                        cnt++;
                    }
                }
     
                System.out.println(chr);
            }
        }
    }

    首先利用Character isLetter方法判断是不是字母

    然后是字母添加到一个LinkedList中

    再排序

    然后替换原来的字符串中的字母

    (Collection.sort()方法真的非常简洁,我蠢到自己手写排序...)

  • 相关阅读:
    微服务网关常用限流算法
    微服务网关zuul介绍
    Nginx实现微服务网关的简单介绍
    11.9-编写操作者
    11.5-编写程序
    11.3-学习操作者文档
    11.2-LV面向对象编程视频学习及周五与老师交流总结
    10.29-基于LabVIEW的分布式集群机器人控制系统
    10.27-运用操作者框架架设控制中心软件架构
    5.24-29离线解析问题
  • 原文地址:https://www.cnblogs.com/shineyoung/p/10527591.html
Copyright © 2011-2022 走看看