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()方法真的非常简洁,我蠢到自己手写排序...)

  • 相关阅读:
    jvm的概述
    关于请求中的一些小知识点
    对react项目进行进一步的修饰
    java基于token进行登录超时检验和有效性校验
    react获取文本框的值
    redis数据库的缓存击穿和缓存穿透
    centos克隆虚拟机
    Java中的第三大特性-多态性
    java中String类的使用
    Maven更换阿里源与仓库地址
  • 原文地址:https://www.cnblogs.com/shineyoung/p/10527591.html
Copyright © 2011-2022 走看看