题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

import java.util.*;
 
public class Main {
 public static String sort(String str){
      // 先将英文字母收集起来
     List<Character>letters = new ArrayList<>();
     for(char ch : str.toCharArray()){
         if(Character.isLetter(ch)){
             letters.add(ch);
         }
     }
     // 将英文字母先排序好
     letters.sort(new Comparator<Character>(){
         public int compare(Character o1,Character o2){
             return Character.toLowerCase(o1) - Character.toLowerCase(o2);
         }
     });
     // 若是非英文字母则直接添加
     StringBuilder result = new StringBuilder();
     for(int i = 0, j = 0; i < str.length(); i++){
         if(Character.isLetter(str.charAt(i))){
             result.append(letters.get(j++));
         }
         else{
             result.append(str.charAt(i));
         }
     }
     return result.toString();
 }       
    public static void main(String[]args){
        Scanner in = new Scanner(System.in);
        while(in.hasNextLine()){
            String str = in.nextLine();
            String res = sort(str);
            System.out.println(res);
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务